Version Description
- Fixed Assign course's items to user when assigning course
- Fixed Options to change key 'lessons' and 'quizzes' when viewing a lesson/quiz in a course.
- Fixed Course pagination issue in some case
- Fixed Can not add to cart for non-loggedin user (woocommerce addon)
- Fixed Broken cert when previewing to print in single course (Certificate)
- Fixed Paid memberships show user as deleted after buying course (Paid membership)
- Fixed overwrite templates issue (Paid membership)
- Fixed "page isnt working" when creating a new post type (conflict with metabox in the-7 theme)
Download this release
Release Info
Developer | tunnhn |
Plugin | LearnPress – WordPress LMS Plugin |
Version | 2.1.2 |
Comparing to | |
See all releases |
Code changes from version 2.1.1 to 2.1.2
- assets/css/admin/admin-compressed.css +1 -0
- assets/css/admin/admin.css +3 -1
- assets/css/admin/admin.less +2 -1
- assets/css/learnpress-compressed.css +1 -0
- assets/css/learnpress.css +1 -1
- assets/css/learnpress.less +1 -1
- inc/admin/dashboard-statistics/class-lp-statistic-status.php +36 -24
- inc/admin/settings/class-lp-settings-courses.php +175 -164
- inc/admin/views/settings/emails/email-template.php +4 -2
- inc/class-lp-emails.php +2 -4
- inc/class-lp-page-controller.php +22 -5
- inc/class-lp-query.php +506 -481
- inc/course/abstract-lp-course.php +1527 -1513
- inc/course/lp-course-functions.php +10 -23
- inc/custom-post-types/abstract.php +5 -2
- inc/custom-post-types/course.php +90 -71
- inc/custom-post-types/order.php +2 -59
- inc/emails/class-lp-email-finished-course.php +4 -1
- inc/emails/class-lp-email.php +12 -3
- inc/libraries/meta-box/inc/field.php +26 -7
- inc/libraries/meta-box/meta-box.php +26 -22
- inc/lp-constants.php +1 -1
- inc/lp-core-functions.php +19 -9
- inc/order/lp-order-functions.php +85 -17
- inc/user/abstract-lp-user.php +7 -5
- inc/user/class-lp-user-factory.php +1 -1
- languages/learnpress-es_ES.mo +0 -0
- languages/learnpress-es_ES.po +5640 -0
- languages/learnpress.pot +356 -369
- learnpress.php +9 -11
- readme.txt +12 -2
- templates/single-course/buttons.php +110 -105
assets/css/admin/admin-compressed.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
.rwmb-field{margin:20px 0 20px 0;}.rwmb-field .rwmb-input .rwmb-label{margin-top:0;}.lp-nav-tab-wrapper{border-bottom:1px solid #ccc;margin:0;padding:9px 15px 0 0;line-height:inherit;}.learn-press-quick-add-page-inline{display:inline-block;vertical-align:top;margin:0 !important;}.learn-press-quick-add-page-inline > *{vertical-align:top;}.post-type-lp_course .column-price,.post-type-lp_course .column-students{width:10%;}.post-type-lp_course #course_curriculum .curriculum-section-items .lp-item-empty td.section-item-input{padding-left:40px;}.post-type-lp_course #course_curriculum .curriculum-section-items .lp-item-empty td.section-item-input.hover{padding-left:0;}.post-type-lp_course .type-lp_course.status-pending .row-actions .view{display:none;}#learn-press-admin-settings{}#learn-press-admin-settings #learn_press_email_formats{margin-bottom:10px;}#learn-press-admin-settings .learn-press-email-variables{margin-left:0;margin-top:5px;}#learn-press-admin-settings .learn-press-email-variables li{display:inline-block;cursor:pointer;}#learn-press-admin-settings .learn-press-email-variables li:hover{color:#0085ba;}#learn-press-admin-settings .nav-tab-wrapper{margin-bottom:20px;}#learn-press-admin-settings .subsubsub{float:left;width:240px;position:relative;z-index:10;margin:0 -260px 0 20px;padding-top:11px;}#learn-press-admin-settings .subsubsub li{display:block;}#learn-press-admin-settings .subsubsub li a{display:block;outline:none;box-shadow:none;}#learn-press-admin-settings .learn-press-settings-wrap{float:left;padding:1px 0 15px 300px;background:#FFF;z-index:0;position:relative;width:100%;box-sizing:border-box;opacity:0;}#learn-press-admin-settings .learn-press-settings-wrap:before{content:'';position:absolute;top:0;bottom:0;border-left:1px solid #DDD;margin-left:-30px;}#learn-press-admin-settings .learn-press-settings-wrap:after{content:'';display:block;clear:both;}#learn-press-admin-settings .learn-press-settings-wrap.ready{opacity:1;}#learn-press-admin-settings.no-subtabs .learn-press-settings-wrap{float:none;margin-left:0;padding-left:25px;}#learn-press-admin-settings.no-subtabs .learn-press-settings-wrap:before{display:none;}#learn-press-admin-settings.no-subtabs .subsubsub{display:none;}#learn-press-admin-settings input[type="radio"]{margin:0 !important;}#learn-press-admin-settings label{line-height:1;}#learn-press-admin-settings input[name="learn_press_course_base"]{margin-top:3px;margin-right:3px;}#learn-press-admin-settings .lp-group-title{padding:0 0 10px;border-bottom:3px solid #563d7c;display:inline-block;margin:0;}#learn-press-admin-settings input[type="text"],#learn-press-admin-settings input[type="email"],#learn-press-admin-settings input[type="number"],#learn-press-admin-settings input[type="tel"],#learn-press-admin-settings input[type="password"],#learn-press-admin-settings select{vertical-align:top;}#learn-press-admin-settings input[type="checkbox"]{opacity:1;}#learn-press-admin-settings .lp-setting-field span{vertical-align:top;line-height:24px;}#learn-press-admin-settings .lp-setting-field .lp-sign-times{font-size:19px;}#learn-press-message-box-block{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000;z-index:99999;opacity:0.8;}#learn-press-message-box-window{position:fixed;top:0;bottom:0;left:0;right:0;z-index:100000;color:#FFF;text-align:center;}#message-box-wrap{margin:0 auto;display:inline-block;text-align:left;max-width:70%;}.message-box-title{color:#FFF;margin:0 0 40px 0;font-size:34px;}.message-box-content{font-size:16px;line-height:1.5;}.message-box-animation{background-image:url("../../images/animation.gif");width:220px;height:20px;margin:20px 0 0;}.message-box-buttons{margin:20px 0 0;border-top:1px solid #929292;padding-top:20px;}.message-box-button{margin-right:10px !important;}.post-type-lp_lesson .column-format .lp-label{font-size:100%;}.hide{display:none;}.handle.dashicons{cursor:move;margin-right:0;}.meta_box_remove .dashicons{text-decoration:initial;}.meta_box_course_lesson_quiz li input,.meta_box_course_lesson_quiz li select{min-width:250px;}.description{margin-top:5px;}.dashed-placeholder{border:2px dashed #999;padding:10px;}.learn-press-message{position:relative;}.learn-press-message .learn-press-admin-notice-dismiss{position:absolute;display:inline-block;background-color:#FFFFFF;border-radius:50%;box-shadow:0px 0px 1px 1px #F1F1F1;width:20px;height:20px;text-align:center;line-height:20px;text-decoration:none;top:50%;right:10px;margin-top:-10px;padding:0;}.learn-press-message .learn-press-admin-notice-dismiss:before{font-family:dashicons;content:'\f335';text-align:center;font-size:18px;text-decoration:none;}li.quiz,li.lesson,li.quick_lesson,li.quick_quiz{margin-left:30px;}.wp-core-ui .meta_box_add_section,.wp-core-ui .meta_box_add_lesson,.wp-core-ui .meta_box_add_quiz,.wp-core-ui .meta_box_quick_add_lesson,.wp-core-ui .meta_box_quick_add_quiz{margin-right:10px;}.column-taxonomy-course_category{width:15%;}.learnpress-advertis-admin{margin-left:160px;padding:10px 20px;position:relative;}.learnpress-advertis-admin > .item{display:none;}.learnpress-advertis-admin > .item:first-child{display:block;}.learnpress-advertis-admin .learnpress-wrap-items{position:relative;overflow:hidden;-webkit-transition:visibility 1s, opacity 1s;transition:visibility 1s, opacity 1s;padding:20px;background-color:#fff;border:1px solid #ddd;margin-bottom:30px;}.learnpress-advertis-admin .theme-thumbnail{float:left;width:35%;}.learnpress-advertis-admin .theme-detail{margin-left:35%;padding-left:20px;}.learnpress-advertis-admin .learnpress-item{position:relative;float:left;margin-right:-100%;width:100%;box-sizing:border-box;visibility:hidden;opacity:0;-webkit-transition:visibility 0.5s linear, opacity 0.5s linear;transition:visibility 0.5s linear, opacity 0.5s linear;}.learnpress-advertis-admin img{width:100%;height:auto;float:none;}.learnpress-advertis-admin .learnpress-active{visibility:visible;opacity:1;}.learnpress-advertis-admin .learnpress-controls{position:absolute;bottom:30px;right:0;height:50px;-ms-transform:translateY(-50%);-webkit-transform:translateY(-50%);transform:translateY(-50%);}.learnpress-advertis-admin .learnpress-controls:after{content:'';clear:both;display:block;}.learnpress-advertis-admin .learnpress-controls .prev-item,.learnpress-advertis-admin .learnpress-controls .next-item{position:absolute;top:0;font-family:'dashicons';width:40px;height:40px;border:1px solid #000;line-height:40px;font-size:16px;color:#000;cursor:pointer;}.learnpress-advertis-admin .learnpress-controls .prev-item{right:95px;}.learnpress-advertis-admin .learnpress-controls .prev-item:before{content:"\f341";display:block;text-align:center;}.learnpress-advertis-admin .learnpress-controls .next-item{right:45px;}.learnpress-advertis-admin .learnpress-controls .next-item:before{content:"\f345";display:block;text-align:center;}@media only screen and (max-width: 1200px) {.learnpress-advertis-admin .theme-thumbnail{width:50%;}.learnpress-advertis-admin .theme-detail{margin-left:25%;width:50%;}}@media only screen and (max-width: 960px) {.learnpress-advertis-admin{margin-left:36px;}.learnpress-advertis-admin .theme-thumbnail{float:none;width:100%;}.learnpress-advertis-admin .theme-detail{margin-top:20px;margin-left:0;padding-left:0;}}@media screen and (max-width: 782px) {.learnpress-advertis-admin{margin-left:0;}}.lpr-add-ons-wrapper .add-on-info{width:65%;display:inline-block;}.lpr-add-ons-wrapper .add-on-action{float:right;}.lpr-add-ons-wrapper .add-on-action a{text-decoration:none;padding:20px;height:80px;width:100px;background:#EBEBEB;margin-right:100px;}.lpr-add-ons-wrapper .add-on-action .add-on-enabled{text-align:center;margin:40px;}.lpr-add-ons-wrapper .add-on-action .add-on-disabled{text-align:center;margin:40px;}.lpr-add-ons-wrapper .add-on-action a:hover{text-decoration:none;content:attr(data-text-disable);}.lp-search-addon{margin:0;width:280px;font-size:16px;font-weight:300;line-height:1.5;padding:3px 5px;height:32px;}.learn-press-add-ons{margin:20px 0 0;}.learn-press-add-ons .lp-addon-hidden{display:none !important;}.learn-press-add-ons .lp-active:nth-of-type(2n+1){clear:none;margin-right:0;margin-left:8px;}.learn-press-add-ons .lp-active:nth-of-type(2n){clear:both;margin-right:8px;margin-left:0;}.learn-press-add-ons.learnpress-premium-plugin .column-description{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-height:1.6em;max-height:6.4em;}.learn-press-add-ons.learnpress-premium-plugin .column-description p{margin:0;line-height:inherit;}.learn-press-add-ons:after{display:block;clear:both;content:'';}.learn-press-add-ons > li{}.learn-press-add-ons > li .add-on-inner{margin:0 20px 40px 20px;border:1px solid #DDD;border-radius:10px;overflow:hidden;}.learn-press-add-ons > li .add-on-thumbnail{position:relative;overflow:hidden;border-bottom:1px solid #E3E3E3;}.learn-press-add-ons > li .add-on-thumbnail img{width:100%;height:auto;vertical-align:top;}.learn-press-add-ons > li .add-on-thumbnail .add-on-overlay{position:absolute;left:0;right:0;height:100%;top:0;-webkit-transition:all 0.25s;background-color:#ADE6FF;opacity:0;}.learn-press-add-ons > li .add-on-thumbnail .add-on-description{position:absolute;left:20px;right:20px;bottom:0;-webkit-transition:all 0.25s;color:#444;opacity:0;}.learn-press-add-ons > li:hover .add-on-overlay{opacity:0.3;}.learn-press-add-ons > li:hover .add-on-description{opacity:1;}.learn-press-add-ons > li .add-on-info{min-height:80px;padding:20px;background-color:#F5F5F5;border-top:1px solid #FFF;}.learn-press-add-ons > li .add-on-info > h3{margin-top:0;}.learn-press-add-ons > li .add-on-actions{position:absolute;bottom:43px;}.learn-press-add-ons > li .add-on-actions .add-on-state{font-size:36px;vertical-align:top;display:none;margin-top:-8px;color:#05B3FF;margin-left:-9px;}.learn-press-add-ons > li .add-on-actions .add-on-state.change{display:inline-block;}.learn-press-add-ons .plugin-card-top{min-height:180px;}.premium_add_ons.active .column-description p{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;line-height:1.6em;max-height:8em;}.learn-press-add-ons .button.spinner{background:url(../../images/spinner.gif) no-repeat 4px !important;padding-left:30px;visibility:visible;width:auto;}.learn-press-add-ons .action-links > span{display:block;text-align:right;font-style:italic;}.learn-press-add-ons .action-links > span.enabled{color:#7ad03a;}.learn-press-add-ons .action-links > span.disabled{color:#FF0000;}.learn-press-add-ons .action-links .price{color:#439fdf;font-weight:700;font-size:15px;line-height:1.6em;}.learn-press-add-ons .action-links .price del{font-weight:400;color:#aaa;padding-right:5px;}.learn-press-add-ons .plugin-icon img{max-width:100%;}#learn-press-bundle-activate-add-ons.spinner{float:left !important;}.learn-press-add-ons .plugin-version{font-weight:bold;}#learn-press-add-ons-wrap #name{width:30%;}.learn-press-add-ons p:before{content:'';}#learn-press-add-ons-wrap .theme{padding:20px;background-color:#fff;border:1px solid #ddd;overflow:hidden;margin-bottom:30px;}#learn-press-add-ons-wrap .theme-controls{margin-top:20px;margin-bottom:0;}#learn-press-add-ons-wrap .theme h2{margin:0 0 20px 0;line-height:1.4;}#learn-press-add-ons-wrap .theme img{width:400px;height:auto;max-height:100%;float:left;margin:0 20px 0 0;}.related_themes .plugin-card-top{padding-bottom:0;}.related_themes .theme-content{position:relative;}.related_themes .image-thumbnail img{width:100%;}.related_themes .theme-description{margin:0 0 25px 0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;line-height:1.6em;max-height:9.6em;}.related_themes .theme-title{margin-right:100px;font-family:"Helvetica Neue", Helvetica, Arial, sans-serif;font-size:22px;line-height:1.6em;margin-bottom:0;min-height:3.2em;}.related_themes .theme-title a{color:#545454;}.related_themes .theme-rating{float:right;display:inline-block;}.related_themes .star-rating{display:inline-block;}.related_themes .count-rating{font-size:15px;position:relative;top:2px;}.related_themes .theme-detail{position:absolute;right:3px;top:0;text-align:right;line-height:1.6em;}.related_themes .theme-detail:after{content:'';display:block;clear:both;}.related_themes .theme-detail .theme-price{display:inline-block;font-size:24px;color:#545454;font-weight:700;line-height:1.6em;}.related_themes .theme-footer{clear:both;margin-left:-20px;margin-right:-20px;padding:20px;background-color:#fafafa;border-top:1px solid #ddd;overflow:hidden;}@media (max-width: 1280px) {.learn-press-add-ons > li{}}@media screen and (max-width: 782px) {.learn-press-add-ons .enable-now{padding:5px;}.learn-press-add-ons .enable-now:before{margin:0 !important;}#learn-press-add-ons-wrap .theme img{width:50%;}}@media (max-width: 768px) {.learn-press-add-ons > li{}.learn-press-add-ons > li .column-name{margin-right:150px;}}@media (max-width: 480px) {.learn-press-add-ons > li{width:100%;}#learn-press-add-ons-wrap .theme img{width:100%;margin:0 0 20px 0;}}#lpr-add-ons-wrapper .lpr-add-on-block{border-bottom:1px dashed #DDD;padding-bottom:20px;width:50%;float:left;margin-top:20px;}#lpr-add-ons-wrapper .lpr-add-on-block:after{content:'';display:block;clear:both;}#lpr-add-ons-wrapper .lpr-admin-thumbnail{float:left;width:200px;}#lpr-add-ons-wrapper .lpr-admin-thumbnail img{vertical-align:top;}#lpr-add-ons-wrapper .lpr-add-on-info{margin-left:220px;margin-right:20px;}#lpr-add-ons-wrapper .lpr-add-on-info > h3{margin-top:0;}#lpr-add-ons-wrapper .lpr-add-on-info > h3 > span{display:inline-block;padding:0 5px;background-color:#7AD3FA;color:#FFF;border-radius:3px;margin-left:10px;font-size:12px;vertical-align:top;font-weight:normal;}#lpr-add-ons-wrapper .lpr-add-on-action{float:right;width:100px;}input.lpr-fancy-checkbox{display:none;}.lpr-fancy-checkbox.tog{border-radius:20px;box-shadow:inset 0 0 4px rgba(0, 0, 0, 0.6);margin:0 auto;height:19px;width:50px;position:relative;cursor:pointer;font:11px/18px arial;background:#ccc;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease;display:inline-block !important;}.lpr-fancy-checkbox.tog:after{content:'';box-shadow:0 2px 2px rgba(0, 0, 0, 0.6);border-radius:20px;display:block;height:15px;width:15px;background:#fff;position:absolute;top:2px;left:2px;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease;}.lpr-fancy-checkbox.tog:before{content:'OFF';position:absolute;right:7px;top:1px;color:#fff;}.lpr-fancy-checkbox.tog:hover:after{left:5px;}.lpr-fancy-checkbox.tog.on:before{content:'ON';right:28px;}.lpr-fancy-checkbox.tog.on{background:#05B3FF;}.lpr-fancy-checkbox.tog.on:after{left:33px;}.lpr-fancy-checkbox.tog.on:hover:after{left:30px;}.lp-list-options{border:1px solid #DDD;border-collapse:collapse;width:100%;}.lp-list-option.lp-list-option-empty td,.lp-list-option.lp-list-option-empty th{background-color:#FBE9E9;}.lp-list-option.lp-list-option-empty .lp-answer-check input,.lp-list-option.lp-list-option-empty .lp-list-option-actions i{display:none;}.lp-list-options thead th{border:1px solid #FFF;background-color:#EAEAEA;padding:10px;text-align:left;color:#00A0D2;}.lp-list-options tbody th,.lp-list-options tbody td{border:1px solid #FFF;padding:10px 10px;text-align:left;background-color:#F5F5F5;}.lp-list-options .lp-answer-check{width:100px;}.lp-list-options tbody th input[type="text"],.lp-list-options tbody td input[type="text"]{width:100%;}.lp-list-options .ui-sortable-placeholder{visibility:visible !important;}.lp-list-options .ui-sortable-placeholder td{background-image:url("../../images/stripe.png");}.lp-list-option .lp-answer-text{color:#777;background-color:transparent;border-color:transparent;box-shadow:none;}.lp-list-option .lp-answer-text:after{font-family:dashicons;content:'\f464';}.lp-list-option .lp-answer-text:focus,.lp-list-option:hover .lp-answer-text{box-shadow:none;outline:none;background-color:transparent;border-color:transparent;}.lp-list-option:hover .lp-answer-text{border-style:dashed;}.lp-list-option-actions{cursor:pointer;color:#00A0D2;}.lp-list-option-actions.lp-move-list-option{cursor:move;}.lp-list-option-actions:hover{color:#156077;}#question_answer .rwmb-question-wrapper{margin:12px 0 0 0;}.question-bottom-actions > *{vertical-align:baseline !important;}body.post-type-lp_quiz #questions,body.post-type-lp_question #question_answer_{border:none;box-shadow:none;background-color:transparent;}body.post-type-lp_quiz #questions .handlediv,body.post-type-lp_question #question_answer_ .handlediv{display:none;}body.post-type-lp_quiz #questions .hndle,body.post-type-lp_question #question_answer_ .hndle{display:none;}body.post-type-lp_quiz #questions .inside,body.post-type-lp_question #question_answer_ .inside{padding:0;}#questions .quiz-questions-heading .questions-toggle{float:right;margin:0;line-height:1;}#questions .quiz-questions-heading .questions-toggle a:hover{color:#00a0d2;}#questions #learn-press-dropdown-questions{display:inline-block;position:relative;}#questions #learn-press-dropdown-questions > ul{position:absolute;top:100%;margin:0;padding:0;background-color:#FFF;left:0;right:0;border:1px solid #EEE;border-top:none;display:none;z-index:50;}#questions #learn-press-dropdown-questions > ul > li{margin:0;}#questions #learn-press-dropdown-questions > ul li > a{display:block;padding:5px;outline:none;box-shadow:none;}#questions #learn-press-question-name{font-size:18px;min-width:350px;margin:0;box-shadow:none;border-color:#EEE;color:#BBB;vertical-align:middle;}#questions #learn-press-toggle-questions{height:32px;vertical-align:top;background-color:#FFF;border:1px solid #EEE;width:32px;margin-left:-4px;text-align:center;font-size:30px;padding:0;color:#CCC;border-left:none;outline:none;cursor:pointer;}#questions #learn-press-toggle-questions:hover{color:#AAAAAA;}#questions #learn-press-button-add-question{_vertical-align:middle;}#questions .question-actions{background-color:#FFF;border:1px solid #DDD;padding:10px;display:inline-block;margin-top:20px;position:relative;z-index:999;}#questions .quiz-question-head .quiz-question-actions{float:right;margin:1px 0;visibility:hidden;padding-top:2px;}#questions .quiz-question-head .quiz-question-actions a{margin:0 3px;color:#666666;vertical-align:middle;box-shadow:none;}#questions .quiz-question-head .quiz-question-actions a:hover{color:#00a0d2;}#questions .quiz-question-head:hover .quiz-question-actions{visibility:visible;}#questions .quiz-question.ui-sortable-placeholder{visibility:visible !important;background-image:url("../../images/stripe.png");border:1px solid #DDD;border-bottom:none;}#questions .question-name{border:none;box-shadow:none;padding-left:0;width:70%;color:#777;vertical-align:middle;}#questions .quiz-question-icon img{max-width:100%;height:auto;}#questions #learn-press-dropdown-questions .added{display:none;}.lpr-curriculum-section > h3{padding:0 !important;}.lpr-curriculum-section > h3 .lpr-action{top:0;right:0;}.lpr-curriculum-section.lpr-empty > h3{cursor:default !important;}.lpr-curriculum-section.lpr-empty .lpr-action{display:none !important;}.lpr-course-curriculum button span{text-decoration:underline;}#learn-press-statistic{margin-top:20px;}.learn-press-chart{position:relative;}.learn-press-chart canvas{height:70vh;width:100vw;}.chart-buttons form{display:inline-block;vertical-align:top;}.chart-buttons form input[type="text"]{width:105px;font-size:14px;vertical-align:top;margin:0;text-align:center;font-weight:bold;padding:4px;}.chart-buttons form span{display:inline-block;vertical-align:middle;font-weight:bold;padding:5px;}.learn-press-chart.loading:after{content:'';position:absolute;top:0;left:0;right:0;bottom:0;z-index:10;background:#FFF;opacity:0.5;}.chart-description li{display:inline-block;margin-right:15px;}.chart-description li:before{content:'';display:inline-block;width:10px;height:10px;vertical-align:middle;margin-right:5px;}.chart-description li span{display:inline-block;vertical-align:middle;font-weight:bold;}.chart-description li.all:before{background:#2FA7FF;}.chart-description li.instructors:before{background:#EAC79B;}.chart-description li.students:before{background:#D4D0CB;}.lpr-stats-time{text-align:center;}.lpr-hidden{display:none;}#lpr-custom-time{position:relative;top:4px;}#lpr-page-block{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#000;opacity:0.5;display:none;z-index:9999;}#form-quick-add-lesson-link{position:absolute;}#_lpr_course_price_description > span{font-weight:bold;font-size:15px;}.lpr-ignore,.lpr-ignore:hover{color:#dd3d36;}.lpr-ignore:hover{cursor:pointer;}.lpr-quick-add-page-inline,.lpr-quick-actions-inline{display:inline-block;vertical-align:middle;margin:0 !important;}#lpr-toggle-quiz-mode{background-color:#0077FF;padding:3px;margin-left:5px;display:inline-block;border-radius:3px;text-decoration:none;color:#FFF;}.column-num_of_question{width:150px;}.lp-search-items input[name="lp-item-name"]{width:500px;}.lp-button-dropdown{padding-left:0 !important;padding-right:28px !important;position:relative;z-index:99998;}.lp-button-dropdown .lp-dropdown-label{padding-left:10px;}.lp-button-dropdown .lp-dropdown-arrow{display:inline-block;text-align:center;padding:0 10px;position:absolute;top:-1px;bottom:-1px;}.lp-button-dropdown .lp-dropdown-items{position:absolute;margin:0;background-color:#FFF;top:100%;margin-top:1px;border:1px solid #DDD;right:-1px;width:200px;z-index:9999999;display:none;}.lp-button-dropdown .lp-dropdown-items li{margin:0;}.lp-button-dropdown .lp-dropdown-items li a{display:block;padding:10px;line-height:1;text-decoration:none;outline:none;box-shadow:none;}.lp-button-dropdown .lp-dropdown-items li a:hover{background-color:#F5F5F5;}.lp-button-dropdown:not(.disabled):hover ul,.lp-button-dropdown:not(.disabled) ul:hover{display:block;}.curriculum-section .lp-check-items,.curriculum-section .lp-check-items:hover{padding-left:5px;padding-right:34px;border-color:transparent;background:transparent;box-shadow:none;}.column-format,.column-is_previewable,.column-taxonomy-question-tag{width:10%;}.learn-press-add-ons .plugin-card .install-now:before,.learn-press-add-ons .plugin-card .disable-now:before,.learn-press-add-ons .plugin-card .enable-now:before{margin:3px 5px 0 -2px;display:inline-block;font:400 20px/1 dashicons;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;vertical-align:top;}.learn-press-add-ons .plugin-card .install-now:before{content:'\f106';color:#0073aa;}.learn-press-add-ons .plugin-card .disable-now:before{content:'\f147';color:#0073aa;}.learn-press-add-ons .plugin-card .enable-now:before{content:'\f335';color:#d54e21;}.learn-press-add-ons .plugin-card .disable-now:hover:before{content:'\f335';color:#d54e21;}.learn-press-add-ons .plugin-card .enable-now:hover:before{content:'\f147';color:#0073aa;}.learn-press-add-ons .plugin-card .button-working:before{content:'\f463' !important;-webkit-animation:lp-spinner 2s infinite linear;animation:lp-spinner 2s infinite linear;margin-right:0;}.learn-press-add-ons .plugin-card .button-working span{display:none;}.lp-button-actions a{text-decoration:none;margin-left:5px;}.learn-press-quick-confirm{position:absolute;z-index:9999;color:#ffffff;padding:2px 8px;display:block;white-space:nowrap;left:-39.625px;top:24px;background-color:#C90202;cursor:pointer;}.learn-press-quick-confirm:hover,.learn-press-quick-confirm:hover:before{background-color:#d73b00;}.learn-press-quick-confirm:before{content:'';display:block;position:absolute;transform:rotate(45deg);width:7px;height:7px;top:-3px;background-color:#C90202;right:7px;}.wp-core-ui .meta_box_add_section,.wp-core-ui .meta_box_add_lesson{margin-right:10px;}.rwmb-meta-box label{color:#222;font-weight:bold;display:block;margin:0 0 16px 0;}.post-type-lp_order #post-body-content,.post-type-lp_order #order_details .handlediv,.post-type-lp_order #order_details .hndle{display:none;}.post-type-lp_order #submitpost .misc-pub-section label{display:block;font-weight:bold;}#learn-press-order{margin:15px;}#learn-press-order .order-data-number{font-size:36px;padding:0;margin-bottom:20px;}#learn-press-order > h3{margin:0 0 10px 0;padding:0;}#learn-press-order .order-data-date,#learn-press-order .order-data-status,#learn-press-order .order-data-payment-method{font-size:18px;padding:0 0 10px 0;}#learn-press-order .user-display-name,#learn-press-order .user-email,#learn-press-order .user-ip-address{padding:0;margin:0 0 10px 0;}#learn-press-order .order-items table{border:1px solid #DDD;border-collapse:collapse;width:100%;}#learn-press-order .order-items table th,#learn-press-order .order-items table td{text-align:left;padding:10px 15px;border:1px solid #DDD;}#learn-press-install-sample-data-notice .install-sample-data-loading{display:none;}#learn_press_dashboard_widget .subsubsub{float:none;}.learn-press-checkbox{display:none !important;}input.regular-text[id^="learn-press-emails"]{width:97%;}.ios-ui-select{background:#dddddd;border:none !important;height:18px;-webkit-border-radius:9px;border-radius:9px;width:30px;-webkit-transition:all 0.3s ease-in-out;-moz-transition:all 0.3s ease-in-out;-ms-transition:all 0.3s ease-in-out;-o-transition:all 0.3s ease-in-out;transition:all 0.3s ease-in-out;-webkit-box-shadow:none;box-shadow:none;cursor:pointer;position:relative;display:inline-block;}.ios-ui-select.checked{-webkit-box-shadow:inset 0 0 0 18px #6ddc5f;box-shadow:inset 0 0 0 18px #6ddc5f;}.ios-ui-select.checked .inner{left:13px;}.ios-ui-select .inner{width:16px;height:16px;position:absolute;top:1px;left:1px;-webkit-border-radius:100%;border-radius:100%;background:white;-webkit-transition:all 350ms cubic-bezier(0, 0.89, 0.44, 1);-moz-transition:all 350ms cubic-bezier(0, 0.89, 0.44, 1);-o-transition:all 350ms cubic-bezier(0, 0.89, 0.44, 1);transition:all 350ms cubic-bezier(0, 0.89, 0.44, 1);-webkit-box-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.1);box-shadow:0 1px 2px 0 rgba(0, 0, 0, 0.2), 0 3px 4px 0 rgba(0, 0, 0, 0.1);}.lp-label-counter{display:inline-block;background-color:#0073AA;border-radius:10px;height:21px;line-height:20px;text-align:center;min-width:21px;color:#FFF;padding:0 5px;}.column-num_of_question,.column-preview,.column-duration,.column-type,.column-taxonomy-question_tag{width:100px;text-align:left;}#learn_press_dashboard_widget .rss-widget ul li{margin-bottom:10px !important;}#learn_press_dashboard_widget .rss-date{margin-left:0;}#learn_press_dashboard_widget_status .inside{padding:0;margin-top:0;}#learn_press_dashboard_widget_status .inside .learnpress-statistic-status{margin-top:0;}#learn_press_dashboard_widget_status .inside .learnpress-statistic-status li{width:50%;float:left;}#learn_press_dashboard_widget_status .inside .learnpress-statistic-status li > a,#learn_press_dashboard_widget_status .inside .learnpress-statistic-status li > span{padding:8px 12px;display:block;}#learn_press_dashboard_widget_status .inside .learnpress-statistic-status li.full-width{width:100%;float:none;clear:both;}#learn_press_dashboard_widget_status .inside .learnpress-statistic-status li.full-width:first-child{border-bottom:1px solid #ececec;}#learn_press_dashboard_widget_status .inside .learnpress-statistic-status li.full-width:first-child a{padding:10px 12px;}#learn_press_dashboard_widget_status .inside .learnpress-statistic-status li.full-width:last-child{border-top:1px solid #ececec;margin:0 12px;}#learn_press_dashboard_widget_status .inside .learnpress-statistic-status li.full-width > a{display:inline-block;}.lp-template-overrides{margin-top:20px;}.lp-template-overrides thead th h4{margin:0;}.lp-template-overrides tbody th{font-weight:bold;}.lp-template-overrides tbody th p{margin:0 0 0 10px;display:inline-block;}.lp-template-overrides tbody th p a{font-weight:normal;outline:none;border:none;box-shadow:none;margin:0;padding:2px 8px;border-radius:3px;}.lp-template-overrides tbody th p a.current{background:#00aadc;color:#FFF;}.lp-template-overrides .lp-template-version{width:100px;}.lp-template-overrides .lp-template-version.outdated{color:#FF0000;}.lp-template-overrides .lp-template-version.up-to-date{color:#1859ff;}.lp-template-overrides .lp-template-version,.lp-template-overrides .lp-core-version{font-weight:bold;}.lp-template-overrides .lp-template-file{width:50%;}.lp-template-overrides #learn-press-no-templates td p{color:#0073aa;}@-webkit-keyframes lp-spinner{0% {-webkit-transform:rotate(0deg);transform:rotate(0deg);}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg);}}@keyframes lp-spinner{0% {-webkit-transform:rotate(0deg);transform:rotate(0deg);}}.rwmb-quiz_questions-wrapper{background:#FFF;}.rwmb-quiz_questions-wrapper .quiz-questions-heading{border:1px solid #DDD;background-color:#F9F9F9;border-bottom:none;margin:0;color:#777;padding:15px 20px 20px;font-size:24px;}.rwmb-quiz_questions-wrapper .quiz-questions-heading a{font-size:32px;color:#0073aa;box-shadow:none;}.rwmb-quiz_questions-wrapper .quiz-questions-heading a.dashicons-arrow-down::before{margin-left:-10px;}.rwmb-quiz_questions-wrapper .quiz-questions-heading a:hover{color:#00a0d2;}.rwmb-quiz_questions-wrapper #learn-press-list-questions{padding:20px;border:1px solid #DDD;}.rwmb-quiz_questions-wrapper #learn-press-list-questions .quiz-question{background:#FFF;border:1px dashed #DDD;margin:-1px 0 0 0;padding:5px 0;}.rwmb-quiz_questions-wrapper #learn-press-list-questions .quiz-question:nth-child(2n+1){background-color:#FCFCFC;}.rwmb-quiz_questions-wrapper #learn-press-list-questions .quiz-question:nth-child(2n+1) .question-name{background-color:#FCFCFC;}.rwmb-quiz_questions-wrapper #learn-press-list-questions .quiz-question .quiz-question-head{padding:0 20px;position:relative;}.rwmb-quiz_questions-wrapper #learn-press-list-questions .quiz-question .quiz-question-head .quiz-question-icon{width:20px;height:20px;display:inline-block;vertical-align:middle;margin-right:10px;}.rwmb-quiz_questions-wrapper #learn-press-list-questions .quiz-question .quiz-question-head .question-name{font-size:16px;}.rwmb-quiz_questions-wrapper #learn-press-list-questions .quiz-question .quiz-question-head .move{color:#666;cursor:url("../../images/openhand.cur") 7 5, default;position:absolute;right:14px;height:50px;top:5px;width:12px;box-shadow:none;}.rwmb-quiz_questions-wrapper #learn-press-list-questions .quiz-question .quiz-question-head .move:hover{color:#00a0d2;}.rwmb-quiz_questions-wrapper #learn-press-list-questions .quiz-question .quiz-question-head:hover .quiz-question-actions{margin-right:20px;}.rwmb-quiz_questions-wrapper #learn-press-list-questions .quiz-question .quiz-question-head:hover .quiz-question-actions .dashicons-admin-page::before{margin-top:2px;}.rwmb-quiz_questions-wrapper #learn-press-list-questions .quiz-question .quiz-question-content{padding:0 20px;}.post-type-lp_quiz #general-settings a{font-size:14px;font-weight:400;margin-left:10px;}
|
assets/css/admin/admin.css
CHANGED
@@ -333,6 +333,7 @@ li.quick_quiz {
|
|
333 |
margin-left: 160px;
|
334 |
padding: 10px 20px;
|
335 |
position: relative;
|
|
|
336 |
}
|
337 |
.learnpress-advertis-admin > .item {
|
338 |
display: none;
|
@@ -1590,7 +1591,8 @@ input.regular-text[id^="learn-press-emails"] {
|
|
1590 |
width: 50%;
|
1591 |
float: left;
|
1592 |
}
|
1593 |
-
#learn_press_dashboard_widget_status .inside .learnpress-statistic-status li > a
|
|
|
1594 |
padding: 8px 12px;
|
1595 |
display: block;
|
1596 |
}
|
333 |
margin-left: 160px;
|
334 |
padding: 10px 20px;
|
335 |
position: relative;
|
336 |
+
overflow: hidden;
|
337 |
}
|
338 |
.learnpress-advertis-admin > .item {
|
339 |
display: none;
|
1591 |
width: 50%;
|
1592 |
float: left;
|
1593 |
}
|
1594 |
+
#learn_press_dashboard_widget_status .inside .learnpress-statistic-status li > a,
|
1595 |
+
#learn_press_dashboard_widget_status .inside .learnpress-statistic-status li > span {
|
1596 |
padding: 8px 12px;
|
1597 |
display: block;
|
1598 |
}
|
assets/css/admin/admin.less
CHANGED
@@ -384,6 +384,7 @@ li.quiz, li.lesson, li.quick_lesson, li.quick_quiz {
|
|
384 |
margin-left: 160px;
|
385 |
padding: 10px 20px;
|
386 |
position: relative;
|
|
|
387 |
|
388 |
> .item {
|
389 |
display: none;
|
@@ -1903,7 +1904,7 @@ input.regular-text[id^="learn-press-emails"] {
|
|
1903 |
li {
|
1904 |
width: 50%;
|
1905 |
float: left;
|
1906 |
-
> a {
|
1907 |
padding: 8px 12px;
|
1908 |
display: block;
|
1909 |
}
|
384 |
margin-left: 160px;
|
385 |
padding: 10px 20px;
|
386 |
position: relative;
|
387 |
+
overflow: hidden;
|
388 |
|
389 |
> .item {
|
390 |
display: none;
|
1904 |
li {
|
1905 |
width: 50%;
|
1906 |
float: left;
|
1907 |
+
> a, > span {
|
1908 |
padding: 8px 12px;
|
1909 |
display: block;
|
1910 |
}
|
assets/css/learnpress-compressed.css
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
@font-face{font-family:'lp-icons';src:url('../fonts/lp-icons.eot?f41nl#iefix') format('embedded-opentype'), url('../fonts/lp-icons.ttf?f41nl') format('truetype'), url('../fonts/lp-icons.woff?f41nl') format('woff'), url('../fonts/lp-icons.svg?f41nl#lp-icons') format('svg');font-weight:normal;font-style:normal;}[class^="lp-icon-"],[class*=" lp-icon-"]{font-family:'lp-icons' !important;speak:none;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.lp-icon-file-text2:before{content:"\e926";}.lp-icon-file-picture:before{content:"\e927";}.lp-icon-file-music:before{content:"\e928";}.lp-icon-file-video:before{content:"\e92a";}.lp-icon-file-zip:before{content:"\e92b";}.lp-icon-paste:before{content:"\e92d";}.lp-icon-alarm:before{content:"\e950";}.lp-icon-cross:before{content:"\ea0f";}.lp-icon-checkmark:before{content:"\ea10";}.lp-icon-spinner2:before{content:"\e97b";}.lp-icon-plus:before{content:"\ea0a";}.lp-icon-minus:before{content:"\ea0b";}.clearfix:after{display:block;content:'';clear:both;}.overlay-processing:before,.overlay-processing:after{content:'';display:block;position:fixed;top:0;left:0;width:100%;height:100%;z-index:999999;}.overlay-processing:before{background:#000;opacity:0.5;}.overlay-processing:after{background:#FFF;}.hide-if-js{display:none !important;}.learn-press-courses{list-style:none;clear:both;margin:0 -30px 0 0;padding:0;}.learn-press-courses:after{display:block;content:'';clear:both;}.learn-press-courses li.course{list-style-type:none;float:left;width:23%;margin:0 2% 30px 0;padding:0;box-sizing:border-box;border:1px solid #DDD;background:#FFF;}.learn-press-courses li.course .view-more{padding:0 15px;text-decoration:none;box-shadow:none;}.learn-press-courses li.course h3{padding:15px;margin:0;font-size:18px;line-height:1.5;}.learn-press-courses li.course .course-thumbnail{position:relative;}.learn-press-courses li.course .course-thumbnail img{max-width:100%;height:auto;}.learn-press-courses li.course .course-thumbnail:after{content:'';position:absolute;width:100%;height:100%;left:0;top:0;}.learn-press-courses li.course .course-info{padding:0 15px 15px;font-size:14px;overflow:hidden;}.learn-press-courses li.course .course-students{float:left;}.learn-press-courses li.course .course-instructor{margin-bottom:20px;}.learn-press-courses li.course .course-origin-price{float:right;text-decoration:line-through;padding-right:5px;}.learn-press-courses li.course .course-price{float:right;color:#54b551;}.learn-press-courses li.course .course-info > *{display:block;}.learn-press-notice .button{float:right;}.learn-press-form{margin-bottom:20px;}#learn-press-course-curriculum ul.curriculum-sections,#learn-press-course-curriculum ul.section-content{list-style:none;margin:0;padding:0;background-color:#F5F5F5;}#learn-press-course-curriculum ul.curriculum-sections li.section,#learn-press-course-curriculum ul.section-content li.section{list-style-type:none;}#learn-press-course-curriculum .section-header{background-color:#EEE;margin:0;padding:20px 15px;border-top:1px solid #FFF;position:relative;}#learn-press-course-curriculum .section-header p{display:inline-block;font-weight:normal;font-style:italic;color:#999999;font-size:14px;margin:0;padding:10px 0;text-transform:none;}#learn-press-course-curriculum .section-header:hover{background:#DDD;}#learn-press-course-curriculum .section-header .meta{font-size:smaller;font-weight:normal;position:absolute;right:15px;top:20px;}#learn-press-course-curriculum .section-header .meta .collapse{display:inline-block;position:relative;font-family:'lp-icons';background:#95e6f9;width:24px;height:24px;line-height:24px;text-align:center;color:#FFF;border-radius:5px;vertical-align:middle;margin-left:5px;}#learn-press-course-curriculum .section-header .meta .collapse:before{content:"\ea0b";margin:0 auto;}#learn-press-course-curriculum .section-header .meta .collapse:hover{cursor:pointer;}#learn-press-course-curriculum .section-header .meta .collapse.plus:before{content:"\ea0a";}#learn-press-course-curriculum .course-item{margin:0;list-style:none;padding:10px 15px;border-top:1px solid #ffffff;position:relative;-webkit-transition:background linear 0.5s;-khtml-transition:background linear 0.5s;-moz-transition:background linear 0.5s;-ms-transition:background linear 0.5s;-o-transition:background linear 0.5s;transition:background linear 0.5s;}#learn-press-course-curriculum .course-item .lp-label-viewing,#learn-press-course-curriculum .course-item .lp-label-completed{display:none;}#learn-press-course-curriculum .course-item .course-item-title{display:block;box-shadow:none;text-align:justify;float:left;}#learn-press-course-curriculum .course-item .course-item-title:before{display:inline-block;font-size:16px;margin-right:10px;font-family:'lp-icons';}#learn-press-course-curriculum .course-item .lp-icon{display:none;}#learn-press-course-curriculum .course-item.viewable{cursor:pointer;}#learn-press-course-curriculum .course-item.viewable:hover{background:#e7ecfb;-webkit-transition:background linear 0s;-khtml-transition:background linear 0s;-moz-transition:background linear 0s;-ms-transition:background linear 0s;-o-transition:background linear 0s;transition:background linear 0s;}#learn-press-course-curriculum .course-item.course-lesson .course-item-title:before{content:'\e926';}#learn-press-course-curriculum .course-item.course-quiz .course-item-title:before{content:'\e950';}#learn-press-course-curriculum .course-item.item-current{background:#FFF;}#learn-press-course-curriculum .course-item.item-current:before{display:block;width:3px;background:#95e6f9;position:absolute;left:0;top:0;height:100%;content:'';}#learn-press-course-curriculum .course-item.item-has-status .item-status{display:inline-block;background:#d6d6d6;margin-left:5px;}#learn-press-course-curriculum .course-item.item-has-status .item-status:before{content:'\ea10';color:#FFF;}#learn-press-course-curriculum .course-item.item-has-status.item-completed .item-status{background:#95e6f9;}#learn-press-course-curriculum .course-item.focus{background:#ffb710;}#learn-press-course-curriculum .course-item.focus.off{-webkit-transition:none;-khtml-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none;}#learn-press-course-curriculum .course-item:after{display:block;clear:both;content:'';}#learn-press-course-curriculum .course-item-meta{display:block;line-height:1;__position:absolute;top:15px;right:15px;float:right;margin-top:5px;}.lp-icon{display:inline-block;font-family:'lp-icons';background:#95e6f9;width:24px;height:24px;line-height:24px;text-align:center;color:#FFF;border-radius:5px;vertical-align:middle;}.lp-icon:before{width:32px;height:32px;}.lp-label{display:inline-block;line-height:24px;font-size:78%;vertical-align:middle;color:#ffffff;padding:0 10px;background:#DDD;height:24px;-webkit-border-radius:4px;-khtml-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;}.lp-label.lp-label-viewing{background-color:#39afff;}.lp-label.lp-label-completed{background-color:#39c7ce;}.lp-label.lp-label-lesson{background-color:#337ab7;}.lp-label.lp-label-quiz{background-color:#53658c;}.lp-label.lp-label-preview{background-color:#02a7ce;}.learn-press-content-protected-message{border:3px solid #ff8484;background:#FFF;padding:20px;color:#ff8484;margin:10px 0;border-radius:6px;}.learn-press-content-protected-message .icon{position:relative;display:inline-block;width:30px;height:30px;margin-right:10px;vertical-align:middle;}.learn-press-content-protected-message .icon:before,.learn-press-content-protected-message .icon:after{width:3px;background:#ff8484;height:30px;content:'';display:inline-block;position:absolute;top:0;left:13.5px;}.learn-press-content-protected-message .icon:before{-webkit-transform:rotate(-45deg);-khtml-transform:rotate(-45deg);-moz-transform:rotate(-45deg);-ms-transform:rotate(-45deg);-o-transform:rotate(-45deg);transform:rotate(-45deg);}.learn-press-content-protected-message .icon:after{-webkit-transform:rotate(45deg);-khtml-transform:rotate(45deg);-moz-transform:rotate(45deg);-ms-transform:rotate(45deg);-o-transform:rotate(45deg);transform:rotate(45deg);}.learn-press-breadcrumb{margin-bottom:20px;}.single-lp_course .learn-press-course-results-progress{margin-bottom:40px;}.single-lp_course .learn-press-course-results-progress .items-progress{float:left;width:68%;margin-right:2%;clear:left;margin-bottom:50px;}.single-lp_course .learn-press-course-results-progress .lp-course-progress-heading{margin-bottom:10px;}.single-lp_course .learn-press-course-results-progress .course-progress{float:left;width:30%;}.single-lp_course .learn-press-course-results-progress .number,.single-lp_course .learn-press-course-results-progress .percentage-sign{display:inline-block;vertical-align:bottom;line-height:1;font-size:25px;}.single-lp_course .learn-press-course-results-progress .percentage-sign{margin-left:5px;}.single-lp_course .learn-press-course-results-progress:after{display:block;content:'';clear:both;}.lp-course-progress{position:relative;}.lp-course-progress .lp-progress-bar{height:15px;background:#DDD;margin:10px 0 15px 0;overflow:hidden;-webkit-border-radius:3px;-khtml-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;}.lp-course-progress .lp-progress-bar .lp-progress-value{width:50%;height:15px;background:#95e6f9;}.lp-course-progress .lp-passing-conditional{left:0%;position:absolute;height:25px;top:-5px;margin-left:-5px;cursor:pointer;}.lp-course-progress .lp-passing-conditional:before,.lp-course-progress .lp-passing-conditional:after{content:'';display:inline-block;border:5px solid transparent;left:0;position:absolute;}.lp-course-progress .lp-passing-conditional:before{border-top-color:#DDD;}.lp-course-progress .lp-passing-conditional:after{border-bottom-color:#DDD;bottom:0;}#learn-press-content-item{border:1px solid #DDD;display:none;}.learn-press-tabs .learn-press-nav-tabs{list-style:none;padding:0;margin:0 0 20px 0;border-bottom:1px solid #DDD;}.learn-press-tabs .learn-press-nav-tabs .learn-press-nav-tab{list-style-type:none;float:left;margin-bottom:-1px;position:relative;}.learn-press-tabs .learn-press-nav-tabs .learn-press-nav-tab a{display:inline-block;padding:10px 15px;outline:none;box-shadow:none;color:#686868;border-bottom:1px solid #DDD;}.learn-press-tabs .learn-press-nav-tabs .learn-press-nav-tab.active{border-bottom:4px solid #007acc;}.learn-press-tabs .learn-press-nav-tabs .learn-press-nav-tab.active a{color:#007acc;border-bottom:none;margin-bottom:-4px;}.learn-press-tabs .learn-press-nav-tabs .learn-press-nav-tab.active:after{position:absolute;width:100%;border-bottom:1px solid #FFF;bottom:-1px;content:'';}.learn-press-tabs .learn-press-nav-tabs:after{content:'';display:block;clear:both;}.learn-press-tabs .learn-press-tab-panel{display:none;margin-bottom:20px;}.learn-press-tabs .learn-press-tab-panel.active{display:block;}#popup_overlay{z-index:10000000 !important;}#popup_container{z-index:10000001 !important;background:#FFF;}body.course-has-popup{overflow:hidden;}#course-curriculum-popup{position:fixed;top:0;left:0;right:0;bottom:0;background:#000;z-index:999999;}#course-curriculum-popup *{box-sizing:border-box;}#course-curriculum-popup #popup-sidebar{float:left;width:350px;position:absolute;top:60px;bottom:0;overflow:auto;background:#FFF;border-right:1px solid #DDD;}#course-curriculum-popup #popup-sidebar .course-curriculum-title{display:none;}#course-curriculum-popup #popup-sidebar .curriculum-sections{margin:0;font-size:smaller;}#course-curriculum-popup #popup-sidebar .learn-press-course-results-progress{padding:15px 20px;margin-bottom:0;}#course-curriculum-popup #popup-sidebar .learn-press-course-results-progress .items-progress,#course-curriculum-popup #popup-sidebar .learn-press-course-results-progress .course-progress{width:100%;margin:0 !important;}#course-curriculum-popup #popup-main{position:absolute;top:0;left:350px;right:0;bottom:0;background:#FFF;}#course-curriculum-popup #popup-main #popup-header{position:absolute;top:0;left:-350px;right:0;height:60px;background:#cc540d;border-bottom:1px solid #ab4a10;}#course-curriculum-popup #popup-main #popup-header .popup-menu{position:absolute;height:60px;width:350px;border-right:1px solid #ab4a10;}#course-curriculum-popup #popup-main #popup-header .popup-close,#course-curriculum-popup #popup-main #popup-header .sidebar-hide-btn,#course-curriculum-popup #popup-main #popup-header .sidebar-show-btn{width:59px;height:59px;position:absolute;top:0;cursor:pointer;font-size:34px;line-height:60px;text-align:center;color:#FFF;}#course-curriculum-popup #popup-main #popup-header .popup-close:hover,#course-curriculum-popup #popup-main #popup-header .sidebar-hide-btn:hover,#course-curriculum-popup #popup-main #popup-header .sidebar-show-btn:hover{background:#b34c10;}#course-curriculum-popup #popup-main #popup-header .sidebar-hide-btn{left:0;}#course-curriculum-popup #popup-main #popup-header .sidebar-show-btn{position:relative;margin-left:-20px;margin-right:20px;}#course-curriculum-popup #popup-main #popup-header .popup-close{right:0px;}#course-curriculum-popup #popup-main #popup-header .popup-close:before,#course-curriculum-popup #popup-main #popup-header .popup-close:after{content:'';border-top:3px solid #FFF;width:30px;display:inline-block;position:absolute;top:29px;left:17px;}#course-curriculum-popup #popup-main #popup-header .popup-close:before{-webkit-transform:rotate(45deg);}#course-curriculum-popup #popup-main #popup-header .popup-close:after{-webkit-transform:rotate(-45deg);}#course-curriculum-popup #popup-main #popup-header .popup-close:hover{background:#b34c10;}#course-curriculum-popup #popup-main #popup-header .popup-close:hover:before,#course-curriculum-popup #popup-main #popup-header .popup-close:hover:after{border-color:#FFF;}#course-curriculum-popup #popup-main #popup-header .popup-title{margin:0 0 0 350px;height:60px;line-height:60px;padding:0 20px;color:#FFF;position:relative;}#course-curriculum-popup #popup-main #popup-content{position:absolute;top:60px;bottom:50px;left:0;right:0;overflow:auto;transition:top linear 0.25s, bottom linear 0.25s;}#course-curriculum-popup #popup-main #popup-content #popup-content-inner{margin:20px 40px;}#course-curriculum-popup #popup-main #popup-footer{position:absolute;bottom:0;left:0;right:0;height:50px;background:#F5F5F5;border-top:1px solid #DDD;}#course-curriculum-popup #popup-main #popup-footer .footer-control{display:block;height:50px;line-height:50px;padding:0 20px;background:#FFF;}#course-curriculum-popup #popup-main #popup-footer .footer-control.prev-item{float:left;}#course-curriculum-popup #popup-main #popup-footer .footer-control.next-item{float:right;}#course-curriculum-popup #popup-main #popup-header,#course-curriculum-popup #popup-main #popup-footer{transition:opacity linear 0.25s;}#course-curriculum-popup #popup-main.expand{position:fixed;left:0;padding:0 20%;top:0;bottom:0;}#course-curriculum-popup #popup-main.expand #popup-header,#course-curriculum-popup #popup-main.expand #popup-footer{opacity:0;}#course-curriculum-popup #popup-main.expand #popup-content{top:0;bottom:0;}#course-curriculum-popup iframe{position:absolute;top:0;left:0;height:100%;width:100%;border:none;margin:0;background:#FFF;}.learn-press-content-item-title{margin-bottom:20px;border-bottom:2px solid #DDD;padding-bottom:20px;}.learn-press-content-item-title.content-item-quiz-title{display:block;content:'';clear:both;}.learn-press-content-item-title.content-item-quiz-title h4{float:left;font-size:24px;margin-bottom:0;}.learn-press-content-item-title.content-item-quiz-title .quiz-countdown{float:right;position:relative;min-width:100px;background:#F5F5F5;text-align:center;font-size:18px;}.learn-press-content-item-title.content-item-quiz-title .quiz-countdown:after,.learn-press-content-item-title.content-item-quiz-title .quiz-countdown:before{padding:0 10px;height:3px;position:absolute;bottom:-3px;background:#000;content:'';left:0;}.learn-press-content-item-title.content-item-quiz-title .quiz-countdown:before{width:100%;}.learn-press-content-item-title.content-item-quiz-title .quiz-countdown:after{background:#00adff;padding:0;}.learn-press-content-item-title.content-item-quiz-title .quiz-countdown.warning-time-over:after{background:#FF0000;}.learn-press-content-item-title.content-item-quiz-title:after{content:'';display:block;clear:both;}.learn-press-content-item-title .lp-expand{float:right;width:43px;height:43px;line-height:43px;background:#F5F5F5;margin:0 10px;border:1px solid #DDD;outline:none;}.learn-press-content-item-summary{margin-bottom:30px;}.learn-press-content-item-summary .quiz-question-title{margin-bottom:20px;}.learn-press-content-item-summary .learn-press-question-explanation,.learn-press-content-item-summary .learn-press-question-hint{background:#F5F5F5;padding:15px 20px;font-style:italic;margin-bottom:20px;}.learn-press-content-item-summary .learn-press-question-explanation .hint-title,.learn-press-content-item-summary .learn-press-question-hint .hint-title,.learn-press-content-item-summary .learn-press-question-explanation .explanation-title,.learn-press-content-item-summary .learn-press-question-hint .explanation-title{font-style:normal;}.button-finish-quiz{float:right;}.learnpress form.purchase-course{margin-bottom:20px;}#learn-press-block-content{display:none;width:100%;height:100%;background:rgba(255, 255, 255, 0.25);position:fixed;z-index:99999999;top:0;left:0;}#learn-press-block-content:before,#learn-press-block-content:after,#learn-press-block-content span{position:absolute;-webkit-border-radius:50%;-khtml-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%;left:50%;top:50%;box-sizing:border-box;}#learn-press-block-content:before{content:'';border:2px solid #000;z-index:10;-webkit-animation:spin-13 1.5s infinite;-moz-animation:spin-13 1.5s infinite;animation:spin-13 1.5s infinite;width:80px;height:80px;margin-left:-40px;margin-top:-40px;-webkit-clip-path:polygon(0px 80px, 80px 80px, 80px 40px, 40px 40px, 40px 0, 0 0);}#learn-press-block-content:after{z-index:0;content:'';border:10px solid #000000;margin-left:-80px;margin-top:-80px;width:160px;height:160px;opacity:0;}#learn-press-block-content span{z-index:20;-webkit-animation:spin-12 1.5s infinite;-moz-animation:spin-12 1.5s infinite;animation:spin-12 1.5s infinite;clip:rect(0, 84px, 42px, 42px);width:84px;height:84px;margin-left:-42px;margin-top:-42px;clip:rect(0, 64px, 32px, 32px);width:64px;height:64px;margin-left:-32px;margin-top:-32px;}#learn-press-block-content span:before{content:'';border:6px solid #95e6f9;position:absolute;-webkit-border-radius:50%;-khtml-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%;box-sizing:border-box;width:84px;height:84px;width:64px;height:64px;}body.block-content #learn-press-block-content{display:block;}.quiz-buttons{margin-bottom:20px;clear:both;}.quiz-intro{list-style:none;padding:0;}.quiz-questions-list{margin:0 0 20px 0;padding:0;list-style-position:inside;}.quiz-questions-list li{margin:0 0 10px 0;}.quiz-questions-list .question-title{margin:0 0 5px 0;}.quiz-questions-list .current .question-title{font-weight:bold;}.quiz-description .learn-press-question-title,.question-content .learn-press-question-title{margin-bottom:20px;}.quiz-countdown{float:right;position:relative;min-width:150px;background:#F5F5F5;text-align:center;font-size:18px;padding:5px 0;}#quiz-countdown .progress-circle{overflow:hidden;box-shadow:0 0 3px #bdbdbd inset;}#quiz-countdown .progress-circle .inside{line-height:1;}#quiz-countdown .progress-circle .inside .countdown{font-size:48px;color:#087998;_text-shadow:1px 1px #8ee5fd;margin-top:110px;}#quiz-countdown .progress-circle .inside p{margin:10px 0 0 0;color:#DDD;}#quiz-countdown .progress-circle:after{background:#00b9eb;box-shadow:0 0 6px #097a98;}#quiz-progress .progress-circle{width:200px;height:200px;border-radius:50%;background-color:#DDD;position:relative;}#quiz-progress .progress-circle .background{content:"";position:absolute;border-radius:50%;width:200px;height:200px;clip:rect(0, 200px, 200px, 100px);}#quiz-progress .progress-circle .background .fill{content:"";position:absolute;border-radius:50%;width:200px;height:200px;clip:rect(0, 100px, 200px, 0);background:#FF0000;transform:rotate(0deg);}#quiz-progress .progress-circle:after{content:'';width:170px;height:170px;background:#FFF;-webkit-border-radius:50%;-khtml-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%;position:absolute;top:50%;left:50%;margin-top:-85px;margin-left:-85px;pointer-events:none;}#quiz-progress .progress-circle .inside{position:absolute;width:100%;height:100%;line-height:200px;text-align:center;z-index:10;}#quiz-progress .progress-circle.gt-50{background-color:#FF0000;}#quiz-progress .progress-circle.gt-50 .background{clip:rect(0, 100px, 200px, 0);}#quiz-progress .progress-circle.gt-50 .fill{clip:rect(0, 200px, 200px, 100px);background:#DDD;}.quiz-result .quiz-result-mark{margin-bottom:20px;}.quiz-result .quiz-result-mark .progress-circle{width:200px;height:200px;border-radius:50%;background-color:#DDD;position:relative;}.quiz-result .quiz-result-mark .progress-circle .background{content:"";position:absolute;border-radius:50%;width:200px;height:200px;clip:rect(0, 200px, 200px, 100px);}.quiz-result .quiz-result-mark .progress-circle .background .fill{content:"";position:absolute;border-radius:50%;width:200px;height:200px;clip:rect(0, 100px, 200px, 0);background:#95e6f9;transform:rotate(0deg);}.quiz-result .quiz-result-mark .progress-circle:after{content:'';width:170px;height:170px;background:#FFF;-webkit-border-radius:50%;-khtml-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%;position:absolute;top:50%;left:50%;margin-top:-85px;margin-left:-85px;pointer-events:none;}.quiz-result .quiz-result-mark .progress-circle .inside{position:absolute;width:100%;height:100%;line-height:200px;text-align:center;z-index:10;}.quiz-result .quiz-result-mark .progress-circle.gt-50{background-color:#95e6f9;}.quiz-result .quiz-result-mark .progress-circle.gt-50 .background{clip:rect(0, 100px, 200px, 0);}.quiz-result .quiz-result-mark .progress-circle.gt-50 .fill{clip:rect(0, 200px, 200px, 100px);background:#DDD;}.quiz-result .quiz-result-summary{margin-bottom:20px;max-width:500px;}.quiz-result .quiz-result-summary .quiz-result-field{position:relative;background:#F5F5F5;color:#fff;margin:0 0 8px 0;font-size:12px;padding:5px 10px;-webkit-border-radius:4px;-khtml-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;overflow:hidden;}.quiz-result .quiz-result-summary .quiz-result-field span,.quiz-result .quiz-result-summary .quiz-result-field span:after,.quiz-result .quiz-result-summary .quiz-result-field:before{display:block;position:absolute;top:0;left:0;height:100%;content:attr(data-text);color:#FFF;white-space:nowrap;overflow:hidden;padding:3px 10px;background:transparent;transition:width 0.5s;}.quiz-result .quiz-result-summary .quiz-result-field:before{content:'';padding:0;}.quiz-result .quiz-result-summary .quiz-result-field span{padding:0;}.quiz-result .quiz-result-summary .quiz-result-field span:after{margin:3px 10px;padding:0;width:100%;}.quiz-result .quiz-result-summary .quiz-result-field.correct{background:#22b4ff;}.quiz-result .quiz-result-summary .quiz-result-field.wrong{background:#ff5425;}.quiz-result .quiz-result-summary .quiz-result-field.empty{color:#656D6D;}.quiz-result p.quiz-result-time{margin:0 0 10px 0;}.quiz-result .quiz-grade p{margin:0 0 10px 0;}.quiz-result .quiz-grade p span{font-weight:bold;}.quiz-result .quiz-grade p span.passed{color:#22b4ff;}.quiz-result .quiz-grade p span.failed{color:#ff5425;}.single-quiz .quiz-result-field[data-value="0"]:before,.single-quiz .quiz-result-field[data-value="0"] span,#quiz-countdown[data-value="0"]:after{width:0%;}.single-quiz .quiz-result-field[data-value="1"]:before,.single-quiz .quiz-result-field[data-value="1"] span,#quiz-countdown[data-value="1"]:after{width:1%;}.single-quiz .quiz-result-field[data-value="2"]:before,.single-quiz .quiz-result-field[data-value="2"] span,#quiz-countdown[data-value="2"]:after{width:2%;}.single-quiz .quiz-result-field[data-value="3"]:before,.single-quiz .quiz-result-field[data-value="3"] span,#quiz-countdown[data-value="3"]:after{width:3%;}.single-quiz .quiz-result-field[data-value="4"]:before,.single-quiz .quiz-result-field[data-value="4"] span,#quiz-countdown[data-value="4"]:after{width:4%;}.single-quiz .quiz-result-field[data-value="5"]:before,.single-quiz .quiz-result-field[data-value="5"] span,#quiz-countdown[data-value="5"]:after{width:5%;}.single-quiz .quiz-result-field[data-value="6"]:before,.single-quiz .quiz-result-field[data-value="6"] span,#quiz-countdown[data-value="6"]:after{width:6%;}.single-quiz .quiz-result-field[data-value="7"]:before,.single-quiz .quiz-result-field[data-value="7"] span,#quiz-countdown[data-value="7"]:after{width:7%;}.single-quiz .quiz-result-field[data-value="8"]:before,.single-quiz .quiz-result-field[data-value="8"] span,#quiz-countdown[data-value="8"]:after{width:8%;}.single-quiz .quiz-result-field[data-value="9"]:before,.single-quiz .quiz-result-field[data-value="9"] span,#quiz-countdown[data-value="9"]:after{width:9%;}.single-quiz .quiz-result-field[data-value="10"]:before,.single-quiz .quiz-result-field[data-value="10"] span,#quiz-countdown[data-value="10"]:after{width:10%;}.single-quiz .quiz-result-field[data-value="11"]:before,.single-quiz .quiz-result-field[data-value="11"] span,#quiz-countdown[data-value="11"]:after{width:11%;}.single-quiz .quiz-result-field[data-value="12"]:before,.single-quiz .quiz-result-field[data-value="12"] span,#quiz-countdown[data-value="12"]:after{width:12%;}.single-quiz .quiz-result-field[data-value="13"]:before,.single-quiz .quiz-result-field[data-value="13"] span,#quiz-countdown[data-value="13"]:after{width:13%;}.single-quiz .quiz-result-field[data-value="14"]:before,.single-quiz .quiz-result-field[data-value="14"] span,#quiz-countdown[data-value="14"]:after{width:14%;}.single-quiz .quiz-result-field[data-value="15"]:before,.single-quiz .quiz-result-field[data-value="15"] span,#quiz-countdown[data-value="15"]:after{width:15%;}.single-quiz .quiz-result-field[data-value="16"]:before,.single-quiz .quiz-result-field[data-value="16"] span,#quiz-countdown[data-value="16"]:after{width:16%;}.single-quiz .quiz-result-field[data-value="17"]:before,.single-quiz .quiz-result-field[data-value="17"] span,#quiz-countdown[data-value="17"]:after{width:17%;}.single-quiz .quiz-result-field[data-value="18"]:before,.single-quiz .quiz-result-field[data-value="18"] span,#quiz-countdown[data-value="18"]:after{width:18%;}.single-quiz .quiz-result-field[data-value="19"]:before,.single-quiz .quiz-result-field[data-value="19"] span,#quiz-countdown[data-value="19"]:after{width:19%;}.single-quiz .quiz-result-field[data-value="20"]:before,.single-quiz .quiz-result-field[data-value="20"] span,#quiz-countdown[data-value="20"]:after{width:20%;}.single-quiz .quiz-result-field[data-value="21"]:before,.single-quiz .quiz-result-field[data-value="21"] span,#quiz-countdown[data-value="21"]:after{width:21%;}.single-quiz .quiz-result-field[data-value="22"]:before,.single-quiz .quiz-result-field[data-value="22"] span,#quiz-countdown[data-value="22"]:after{width:22%;}.single-quiz .quiz-result-field[data-value="23"]:before,.single-quiz .quiz-result-field[data-value="23"] span,#quiz-countdown[data-value="23"]:after{width:23%;}.single-quiz .quiz-result-field[data-value="24"]:before,.single-quiz .quiz-result-field[data-value="24"] span,#quiz-countdown[data-value="24"]:after{width:24%;}.single-quiz .quiz-result-field[data-value="25"]:before,.single-quiz .quiz-result-field[data-value="25"] span,#quiz-countdown[data-value="25"]:after{width:25%;}.single-quiz .quiz-result-field[data-value="26"]:before,.single-quiz .quiz-result-field[data-value="26"] span,#quiz-countdown[data-value="26"]:after{width:26%;}.single-quiz .quiz-result-field[data-value="27"]:before,.single-quiz .quiz-result-field[data-value="27"] span,#quiz-countdown[data-value="27"]:after{width:27%;}.single-quiz .quiz-result-field[data-value="28"]:before,.single-quiz .quiz-result-field[data-value="28"] span,#quiz-countdown[data-value="28"]:after{width:28%;}.single-quiz .quiz-result-field[data-value="29"]:before,.single-quiz .quiz-result-field[data-value="29"] span,#quiz-countdown[data-value="29"]:after{width:29%;}.single-quiz .quiz-result-field[data-value="30"]:before,.single-quiz .quiz-result-field[data-value="30"] span,#quiz-countdown[data-value="30"]:after{width:30%;}.single-quiz .quiz-result-field[data-value="31"]:before,.single-quiz .quiz-result-field[data-value="31"] span,#quiz-countdown[data-value="31"]:after{width:31%;}.single-quiz .quiz-result-field[data-value="32"]:before,.single-quiz .quiz-result-field[data-value="32"] span,#quiz-countdown[data-value="32"]:after{width:32%;}.single-quiz .quiz-result-field[data-value="33"]:before,.single-quiz .quiz-result-field[data-value="33"] span,#quiz-countdown[data-value="33"]:after{width:33%;}.single-quiz .quiz-result-field[data-value="34"]:before,.single-quiz .quiz-result-field[data-value="34"] span,#quiz-countdown[data-value="34"]:after{width:34%;}.single-quiz .quiz-result-field[data-value="35"]:before,.single-quiz .quiz-result-field[data-value="35"] span,#quiz-countdown[data-value="35"]:after{width:35%;}.single-quiz .quiz-result-field[data-value="36"]:before,.single-quiz .quiz-result-field[data-value="36"] span,#quiz-countdown[data-value="36"]:after{width:36%;}.single-quiz .quiz-result-field[data-value="37"]:before,.single-quiz .quiz-result-field[data-value="37"] span,#quiz-countdown[data-value="37"]:after{width:37%;}.single-quiz .quiz-result-field[data-value="38"]:before,.single-quiz .quiz-result-field[data-value="38"] span,#quiz-countdown[data-value="38"]:after{width:38%;}.single-quiz .quiz-result-field[data-value="39"]:before,.single-quiz .quiz-result-field[data-value="39"] span,#quiz-countdown[data-value="39"]:after{width:39%;}.single-quiz .quiz-result-field[data-value="40"]:before,.single-quiz .quiz-result-field[data-value="40"] span,#quiz-countdown[data-value="40"]:after{width:40%;}.single-quiz .quiz-result-field[data-value="41"]:before,.single-quiz .quiz-result-field[data-value="41"] span,#quiz-countdown[data-value="41"]:after{width:41%;}.single-quiz .quiz-result-field[data-value="42"]:before,.single-quiz .quiz-result-field[data-value="42"] span,#quiz-countdown[data-value="42"]:after{width:42%;}.single-quiz .quiz-result-field[data-value="43"]:before,.single-quiz .quiz-result-field[data-value="43"] span,#quiz-countdown[data-value="43"]:after{width:43%;}.single-quiz .quiz-result-field[data-value="44"]:before,.single-quiz .quiz-result-field[data-value="44"] span,#quiz-countdown[data-value="44"]:after{width:44%;}.single-quiz .quiz-result-field[data-value="45"]:before,.single-quiz .quiz-result-field[data-value="45"] span,#quiz-countdown[data-value="45"]:after{width:45%;}.single-quiz .quiz-result-field[data-value="46"]:before,.single-quiz .quiz-result-field[data-value="46"] span,#quiz-countdown[data-value="46"]:after{width:46%;}.single-quiz .quiz-result-field[data-value="47"]:before,.single-quiz .quiz-result-field[data-value="47"] span,#quiz-countdown[data-value="47"]:after{width:47%;}.single-quiz .quiz-result-field[data-value="48"]:before,.single-quiz .quiz-result-field[data-value="48"] span,#quiz-countdown[data-value="48"]:after{width:48%;}.single-quiz .quiz-result-field[data-value="49"]:before,.single-quiz .quiz-result-field[data-value="49"] span,#quiz-countdown[data-value="49"]:after{width:49%;}.single-quiz .quiz-result-field[data-value="50"]:before,.single-quiz .quiz-result-field[data-value="50"] span,#quiz-countdown[data-value="50"]:after{width:50%;}.single-quiz .quiz-result-field[data-value="51"]:before,.single-quiz .quiz-result-field[data-value="51"] span,#quiz-countdown[data-value="51"]:after{width:51%;}.single-quiz .quiz-result-field[data-value="52"]:before,.single-quiz .quiz-result-field[data-value="52"] span,#quiz-countdown[data-value="52"]:after{width:52%;}.single-quiz .quiz-result-field[data-value="53"]:before,.single-quiz .quiz-result-field[data-value="53"] span,#quiz-countdown[data-value="53"]:after{width:53%;}.single-quiz .quiz-result-field[data-value="54"]:before,.single-quiz .quiz-result-field[data-value="54"] span,#quiz-countdown[data-value="54"]:after{width:54%;}.single-quiz .quiz-result-field[data-value="55"]:before,.single-quiz .quiz-result-field[data-value="55"] span,#quiz-countdown[data-value="55"]:after{width:55%;}.single-quiz .quiz-result-field[data-value="56"]:before,.single-quiz .quiz-result-field[data-value="56"] span,#quiz-countdown[data-value="56"]:after{width:56%;}.single-quiz .quiz-result-field[data-value="57"]:before,.single-quiz .quiz-result-field[data-value="57"] span,#quiz-countdown[data-value="57"]:after{width:57%;}.single-quiz .quiz-result-field[data-value="58"]:before,.single-quiz .quiz-result-field[data-value="58"] span,#quiz-countdown[data-value="58"]:after{width:58%;}.single-quiz .quiz-result-field[data-value="59"]:before,.single-quiz .quiz-result-field[data-value="59"] span,#quiz-countdown[data-value="59"]:after{width:59%;}.single-quiz .quiz-result-field[data-value="60"]:before,.single-quiz .quiz-result-field[data-value="60"] span,#quiz-countdown[data-value="60"]:after{width:60%;}.single-quiz .quiz-result-field[data-value="61"]:before,.single-quiz .quiz-result-field[data-value="61"] span,#quiz-countdown[data-value="61"]:after{width:61%;}.single-quiz .quiz-result-field[data-value="62"]:before,.single-quiz .quiz-result-field[data-value="62"] span,#quiz-countdown[data-value="62"]:after{width:62%;}.single-quiz .quiz-result-field[data-value="63"]:before,.single-quiz .quiz-result-field[data-value="63"] span,#quiz-countdown[data-value="63"]:after{width:63%;}.single-quiz .quiz-result-field[data-value="64"]:before,.single-quiz .quiz-result-field[data-value="64"] span,#quiz-countdown[data-value="64"]:after{width:64%;}.single-quiz .quiz-result-field[data-value="65"]:before,.single-quiz .quiz-result-field[data-value="65"] span,#quiz-countdown[data-value="65"]:after{width:65%;}.single-quiz .quiz-result-field[data-value="66"]:before,.single-quiz .quiz-result-field[data-value="66"] span,#quiz-countdown[data-value="66"]:after{width:66%;}.single-quiz .quiz-result-field[data-value="67"]:before,.single-quiz .quiz-result-field[data-value="67"] span,#quiz-countdown[data-value="67"]:after{width:67%;}.single-quiz .quiz-result-field[data-value="68"]:before,.single-quiz .quiz-result-field[data-value="68"] span,#quiz-countdown[data-value="68"]:after{width:68%;}.single-quiz .quiz-result-field[data-value="69"]:before,.single-quiz .quiz-result-field[data-value="69"] span,#quiz-countdown[data-value="69"]:after{width:69%;}.single-quiz .quiz-result-field[data-value="70"]:before,.single-quiz .quiz-result-field[data-value="70"] span,#quiz-countdown[data-value="70"]:after{width:70%;}.single-quiz .quiz-result-field[data-value="71"]:before,.single-quiz .quiz-result-field[data-value="71"] span,#quiz-countdown[data-value="71"]:after{width:71%;}.single-quiz .quiz-result-field[data-value="72"]:before,.single-quiz .quiz-result-field[data-value="72"] span,#quiz-countdown[data-value="72"]:after{width:72%;}.single-quiz .quiz-result-field[data-value="73"]:before,.single-quiz .quiz-result-field[data-value="73"] span,#quiz-countdown[data-value="73"]:after{width:73%;}.single-quiz .quiz-result-field[data-value="74"]:before,.single-quiz .quiz-result-field[data-value="74"] span,#quiz-countdown[data-value="74"]:after{width:74%;}.single-quiz .quiz-result-field[data-value="75"]:before,.single-quiz .quiz-result-field[data-value="75"] span,#quiz-countdown[data-value="75"]:after{width:75%;}.single-quiz .quiz-result-field[data-value="76"]:before,.single-quiz .quiz-result-field[data-value="76"] span,#quiz-countdown[data-value="76"]:after{width:76%;}.single-quiz .quiz-result-field[data-value="77"]:before,.single-quiz .quiz-result-field[data-value="77"] span,#quiz-countdown[data-value="77"]:after{width:77%;}.single-quiz .quiz-result-field[data-value="78"]:before,.single-quiz .quiz-result-field[data-value="78"] span,#quiz-countdown[data-value="78"]:after{width:78%;}.single-quiz .quiz-result-field[data-value="79"]:before,.single-quiz .quiz-result-field[data-value="79"] span,#quiz-countdown[data-value="79"]:after{width:79%;}.single-quiz .quiz-result-field[data-value="80"]:before,.single-quiz .quiz-result-field[data-value="80"] span,#quiz-countdown[data-value="80"]:after{width:80%;}.single-quiz .quiz-result-field[data-value="81"]:before,.single-quiz .quiz-result-field[data-value="81"] span,#quiz-countdown[data-value="81"]:after{width:81%;}.single-quiz .quiz-result-field[data-value="82"]:before,.single-quiz .quiz-result-field[data-value="82"] span,#quiz-countdown[data-value="82"]:after{width:82%;}.single-quiz .quiz-result-field[data-value="83"]:before,.single-quiz .quiz-result-field[data-value="83"] span,#quiz-countdown[data-value="83"]:after{width:83%;}.single-quiz .quiz-result-field[data-value="84"]:before,.single-quiz .quiz-result-field[data-value="84"] span,#quiz-countdown[data-value="84"]:after{width:84%;}.single-quiz .quiz-result-field[data-value="85"]:before,.single-quiz .quiz-result-field[data-value="85"] span,#quiz-countdown[data-value="85"]:after{width:85%;}.single-quiz .quiz-result-field[data-value="86"]:before,.single-quiz .quiz-result-field[data-value="86"] span,#quiz-countdown[data-value="86"]:after{width:86%;}.single-quiz .quiz-result-field[data-value="87"]:before,.single-quiz .quiz-result-field[data-value="87"] span,#quiz-countdown[data-value="87"]:after{width:87%;}.single-quiz .quiz-result-field[data-value="88"]:before,.single-quiz .quiz-result-field[data-value="88"] span,#quiz-countdown[data-value="88"]:after{width:88%;}.single-quiz .quiz-result-field[data-value="89"]:before,.single-quiz .quiz-result-field[data-value="89"] span,#quiz-countdown[data-value="89"]:after{width:89%;}.single-quiz .quiz-result-field[data-value="90"]:before,.single-quiz .quiz-result-field[data-value="90"] span,#quiz-countdown[data-value="90"]:after{width:90%;}.single-quiz .quiz-result-field[data-value="91"]:before,.single-quiz .quiz-result-field[data-value="91"] span,#quiz-countdown[data-value="91"]:after{width:91%;}.single-quiz .quiz-result-field[data-value="92"]:before,.single-quiz .quiz-result-field[data-value="92"] span,#quiz-countdown[data-value="92"]:after{width:92%;}.single-quiz .quiz-result-field[data-value="93"]:before,.single-quiz .quiz-result-field[data-value="93"] span,#quiz-countdown[data-value="93"]:after{width:93%;}.single-quiz .quiz-result-field[data-value="94"]:before,.single-quiz .quiz-result-field[data-value="94"] span,#quiz-countdown[data-value="94"]:after{width:94%;}.single-quiz .quiz-result-field[data-value="95"]:before,.single-quiz .quiz-result-field[data-value="95"] span,#quiz-countdown[data-value="95"]:after{width:95%;}.single-quiz .quiz-result-field[data-value="96"]:before,.single-quiz .quiz-result-field[data-value="96"] span,#quiz-countdown[data-value="96"]:after{width:96%;}.single-quiz .quiz-result-field[data-value="97"]:before,.single-quiz .quiz-result-field[data-value="97"] span,#quiz-countdown[data-value="97"]:after{width:97%;}.single-quiz .quiz-result-field[data-value="98"]:before,.single-quiz .quiz-result-field[data-value="98"] span,#quiz-countdown[data-value="98"]:after{width:98%;}.single-quiz .quiz-result-field[data-value="99"]:before,.single-quiz .quiz-result-field[data-value="99"] span,#quiz-countdown[data-value="99"]:after{width:99%;}.single-quiz .quiz-result-field[data-value="100"]:before,.single-quiz .quiz-result-field[data-value="100"] span,#quiz-countdown[data-value="100"]:after{width:100%;}.learn-press-question-options{list-style:none;margin:0 0 20px 0;padding:0;}.learn-press-question-options > li.answer-option{font-size:16px;background:#F5F5F5;margin-bottom:20px;position:relative;-webkit-border-radius:4px;-khtml-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;}.learn-press-question-options > li.answer-option > label{display:block;}.learn-press-question-options > li.answer-option > label input[type="checkbox"],.learn-press-question-options > li.answer-option > label input[type="radio"]{border:0;-webkit-appearance:initial;width:30px;height:30px;background:#fff;border-radius:4px;outline:none;position:absolute;top:10px;left:15px;margin:0;}.learn-press-question-options > li.answer-option > label input[type="checkbox"]:checked:before,.learn-press-question-options > li.answer-option > label input[type="radio"]:checked:before{content:'';border:4px solid #00b9eb;display:inline-block;width:10px;height:15px;border-top:none;border-left:none;position:absolute;top:3px;left:8px;box-sizing:content-box;-webkit-transform:rotate(36deg);-khtml-transform:rotate(36deg);-moz-transform:rotate(36deg);-ms-transform:rotate(36deg);-o-transform:rotate(36deg);transform:rotate(36deg);}.learn-press-question-options > li.answer-option > label input[type="checkbox"]:checked + p,.learn-press-question-options > li.answer-option > label input[type="radio"]:checked + p{font-weight:bold;background:#00b9eb;color:#FFF;}.learn-press-question-options > li.answer-option > label input[type="checkbox"][disabled],.learn-press-question-options > li.answer-option > label input[type="radio"][disabled]{opacity:1;}.learn-press-question-options > li.answer-option > label input[type="radio"]{-webkit-border-radius:50%;-khtml-border-radius:50%;-moz-border-radius:50%;-ms-border-radius:50%;-o-border-radius:50%;border-radius:50%;}.learn-press-question-options > li.answer-option > label p{min-height:50px;padding:5px 20px 5px 60px;margin:0;box-sizing:border-box;line-height:1.5;}.learn-press-question-options > li.answer-option > label p.single-lines{padding:0 20px 0 60px;line-height:50px;}.learn-press-question-options > li.answer-option label p{-webkit-border-radius:4px;-khtml-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;}.learn-press-question-options > li.answer-option.answer-true label p{background:#00b9eb;color:#FFF;}.learn-press-question-options > li.answer-option:hover label p{background:#D4D4D4;cursor:pointer;}.learn-press-question-options > li.answer-option.user-answer-false{background:#F5F5F5;}.learn-press-question-options > li.answer-option.user-answer-false > label input[type="checkbox"] + p,.learn-press-question-options > li.answer-option.user-answer-false > label input[type="radio"] + p{text-decoration:line-through;color:#FF0000;background:#F5F5F5;}.learn-press-question-options .answer-option-result label p{display:inline-block;margin:0;font-size:smaller;}.learn-press-question-options .answer-option-result label input[disabled]{opacity:1;}.learnpress-content{margin-bottom:20px;}.course-meta{margin-bottom:20px;}.course-meta .course-origin-price{padding-right:5px;text-decoration:line-through;}.course-meta .course-price{font-weight:bold;}.learn-press-message{background:#F5F5F5;border-left:5px solid #00A0D2;padding:10px 20px 1px 20px;margin-bottom:20px;}.learn-press-message button{float:right;}.learn-press-message p{margin-bottom:10px;}.learn-press-message:after{clear:both;content:'';display:block;}.learn-press-message.notice{border-left-color:#b3d20a;}.learn-press-message.error{border-left-color:#b81c23;}.learn-press-message ul{list-style-type:none;}.learn-press-checkout-comment,.learn-press-checkout-payment{margin-bottom:20px;}.learn-press-checkout-payment .payment-methods{list-style:none;margin:0;}.single-quiz .quiz-questions-list{padding:0;}.single-quiz .quiz-intro{list-style:none;padding:10px 20px;background:#F5F5F5;margin:0 0 20px 0;}.single-quiz h4{margin-bottom:10px;font-size:18px;}.learn-press-tooltip{font-size:20px;display:inline-block;vertical-align:middle;background:#0f4956;cursor:pointer;line-height:1;width:10px;height:10px;border-radius:50%;font-weight:700;position:relative;}.learn-press-tooltip:before{content:"?";font-size:7px;color:white;position:absolute;top:2px;left:3px;}.lp-form-field-wrap{list-style:none;margin:0 0 20px 0;}.lp-form-field-wrap .lp-form-field{list-style:none;margin:0 0 20px 0;}.lp-form-field-wrap .lp-form-field .lp-form-field-label{display:block;font-weight:bold;margin-bottom:5px;}.lp-form-field-wrap .lp-form-field .lp-form-field-input .description{font-size:smaller;font-style:italic;margin-top:5px;}.lp-form-field-wrap .lp-form-field .lp-field-error-message{color:#FF0000;}.learn-press-user-profile .lp-edit-profile:after{display:block;content:'';clear:both;}.learn-press-user-profile .lp-edit-profile:after:after{content:'';display:block;clear:both;}.learn-press-user-profile .user-basic-info p{margin-top:10px;}.learn-press-user-profile .learn-press-tabs{list-style:none;margin:30px 0 20px;border-bottom:1px solid #DDD;}.learn-press-user-profile .learn-press-tabs > li{float:left;list-style-type:none;margin-bottom:-1px;}.learn-press-user-profile .learn-press-tabs > li > a{display:inline-block;padding:10px 15px;outline:none;box-shadow:none;color:#686868;border-bottom:1px solid #DDD;}.learn-press-user-profile .learn-press-tabs > li.current{border-bottom:4px solid #007acc;}.learn-press-user-profile .learn-press-tabs > li.current a{color:#007acc;margin-bottom:-4px;}.learn-press-user-profile .learn-press-subtabs > li{display:inline-block;margin-right:10px;}.learn-press-user-profile .learn-press-subtabs > li.current{font-weight:bold;}.learn-press-user-profile .learn-press-subtab-content{display:block;margin-bottom:20px;}.learn-press-user-profile .learn-press-subtab-content.current{display:block;}.learn-press-user-profile .learn-press-subtab-content li.course h3{padding-bottom:10px;}.learn-press-user-profile .learn-press-subtab-content .profile-courses{list-style-type:none;}.learn-press-user-profile .learn-press-subtab-content .profile-courses .learn-press-course-results-progress{padding:0 15px 15px 15px;margin:0;}.learn-press-user-profile button.learn-press-course-wishlist{display:block;}.learn-press-user-profile .user-profile-edit-form .info-field{margin-bottom:20px;}.learn-press-user-profile .user-profile-edit-form .description{margin-top:5px;}.learn-press-user-profile .user-profile-edit-form .user-profile-picture{clear:both;}.learn-press-user-profile .user-profile-edit-form .user-profile-picture .picture,.learn-press-user-profile .user-profile-edit-form .user-profile-picture .change-picture{display:inline-block;}.learn-press-user-profile .user-profile-edit-form .user-profile-picture .change-picture .description{margin:0 0 10px 0;}.learn-press-user-profile .user-profile-edit-form .user-profile-picture img{float:left;margin-right:20px;}.learn-press-user-profile .user-profile-edit-form .user-profile-picture:after{display:block;content:'';clear:both;}.learn-press-user-profile .user-profile-edit-form .user-profile-picture:after:after{content:'';display:block;clear:both;}.learn-press-user-profile .user-profile-edit-form .profile-field-name{font-weight:bold;margin-bottom:10px;}.learn-press-user-profile .user-profile-edit-form .change-password{margin-bottom:10px;}.learn-press-user-profile .user-profile-edit-form #user_profile_password_form input{margin-bottom:20px;}.learn-press-user-profile .user-profile-edit-form #user_profile_password_form .description{margin-top:-15px;}.learn-press-user-profile .update-profile{border-top:2px solid #DDD;padding-top:20px;}.learn-press-user-profile #lp-user-edit-avatar .moxie-shim{display:none;}.learn-press-user-profile #lp-user-edit-avatar .lp-form-field-avatar{float:left;}.learn-press-user-profile #lp-user-edit-avatar #lp-avatar-actions{margin:20px 0;}.learn-press-user-profile .lp-avatar-preview{position:relative;float:left;background-color:#DDD;}.learn-press-user-profile .lp-avatar-preview .profile-picture{float:left;margin-right:-100%;width:100%;}.learn-press-user-profile .lp-avatar-preview .profile-picture img{width:100%;height:100%;border-radius:0;}.learn-press-user-profile .lp-avatar-preview .profile-picture.profile-avatar-hidden{display:none;}.learn-press-user-profile .lp-avatar-preview .lp-avatar-preview-actions{position:absolute;top:50%;width:100%;margin-top:-14px;text-align:center;display:none;}.learn-press-user-profile .lp-avatar-preview .lp-avatar-preview-actions a{text-decoration:none;font-size:12px;background:#FFF;display:inline-block;box-shadow:none;padding:5px 10px;}.learn-press-user-profile .lp-avatar-preview .lp-avatar-upload-progress{position:absolute;height:10px;background:#FFF;top:50%;margin-top:-5px;left:10px;right:10px;display:none;}.learn-press-user-profile .lp-avatar-preview .lp-avatar-upload-progress .lp-avatar-upload-progress-value{width:0;height:10px;background:#563d7c;}.learn-press-user-profile .lp-avatar-preview .lp-avatar-upload-error{display:none;}.learn-press-user-profile .lp-avatar-preview:hover .lp-avatar-preview-actions{display:block;}.learn-press-user-profile .lp-avatar-preview.uploading .lp-avatar-preview-actions,.learn-press-user-profile .lp-avatar-preview.upload-error .lp-avatar-preview-actions{display:none;}.learn-press-user-profile .lp-avatar-preview.uploading .lp-avatar-upload-progress,.learn-press-user-profile .lp-avatar-preview.upload-error .lp-avatar-upload-progress{display:block;}.learn-press-user-profile .lp-avatar-preview.uploading:before,.learn-press-user-profile .lp-avatar-preview.upload-error:before{position:absolute;width:100%;height:100%;background:#FFF;opacity:0.4;content:'';}.learn-press-user-profile .lp-avatar-preview.upload-error .lp-avatar-upload-error{display:block;}.learn-press-user-profile .lp-avatar-preview.croping .lp-avatar-preview-actions{display:none;}.learn-press-user-profile .lp-avatar-preview.croping .lp-avatar-crop-image{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;overflow:hidden;}.learn-press-user-profile .lp-avatar-preview.croping .lp-avatar-crop-image img{max-width:inherit;cursor:move;}.learn-press-user-profile .lp-avatar-preview.croping .lp-avatar-crop-image .lp-crop-controls{position:absolute;bottom:0;width:100%;height:30px;}.learn-press-user-profile .lp-avatar-preview.croping .lp-avatar-crop-image .lp-crop-controls .lp-zoom{position:absolute;height:10px;bottom:10px;left:10px;right:30px;background:#563d7a;}.learn-press-user-profile .lp-avatar-preview.croping .lp-avatar-crop-image .lp-crop-controls .lp-zoom .ui-slider{position:absolute;left:0;right:10px;height:100%;}.learn-press-user-profile .lp-avatar-preview.croping .lp-avatar-crop-image .lp-crop-controls .lp-zoom .ui-slider .ui-slider-handle{display:inline-block;width:10px;height:14px;background:#FFF;position:absolute;margin-top:-2px;border:1px solid #563d7a;box-shadow:none;outline:none;cursor:ew-resize;}.learn-press-user-profile .lp-avatar-preview.croping .lp-avatar-crop-image .lp-crop-controls .lp-cancel-upload{text-decoration:none;position:absolute;bottom:5px;right:5px;box-shadow:none;}.learn-press-user-profile .lp-avatar-preview.croping .lp-avatar-crop-image .lp-crop-controls:before{position:absolute;height:30px;width:100%;content:'';background:#FFF;opacity:0.4;}.learn-press-user-profile .lp-avatar-preview:after{display:block;content:'';clear:both;}.learn-press-user-profile .lp-avatar-preview:after:after{content:'';display:block;clear:both;}body.profile-dragging{cursor:move !important;}body.profile-resizing{cursor:ew-resize !important;}.learn-press-pagination{text-align:center;}.learn-press-pagination ul{list-style:disc;}.learn-press-pagination ul > li{display:inline-block;}.learn-press-pagination ul > li span{display:inline-block;padding:0 10px;border:1px solid #DDD;background-color:#F5F5F5;}.learn-press-pagination ul > li a{display:inline-block;padding:0 10px;border:1px solid #DDD;background-color:#FFF;}.learn-press-become-teacher-form ul{list-style:none;padding:0;}.learn-press-become-teacher-form ul li{margin-bottom:20px;}#popup_container #popup_title{padding:10px 20px;background:#18B6C7;color:#FFF;font-size:18px;margin:0;}#popup_container #popup_content{padding:20px;}#popup_container #popup_content #popup_message{margin-bottom:20px;}#popup_container #popup_panel{text-align:center;}.single-lp_course .course-summary .lp_course .entry-footer{display:none;}.single-lp_course .learn-press-message{clear:both;margin-top:25px;}.learn-press-tooltip-bubble{position:absolute;background:rgba(26, 26, 26, 0.9);color:#ffffff;padding:8px 10px;font-size:12px;z-index:9999999;line-height:1;border-radius:3px;}input.blank-fill-correct{width:auto;}body.content-item-only{background:#FFF;opacity:0;}body.content-item-only .learn-press-content-item-only{position:fixed;z-index:9999999;left:0;top:0;width:100%;height:100%;background:#FFF;overflow:auto;padding:20px;margin:0;}body.content-item-only #learn-press-content-item{border:none;display:block;transition:max-width linear 0.25s;margin:0 auto;max-width:1000px;width:90%;}body.content-item-only #learn-press-content-item.expand{max-width:1200px;}.lp-group-heading-title.toggle-off,.lp-group-heading-title.toggle-on{cursor:pointer;}.lp-group-heading-title.toggle-off .toggle-icon,.lp-group-heading-title.toggle-on .toggle-icon{display:inline-block;font-size:larger;line-height:1;font-weight:bold;margin-left:5px;}.lp-group-heading-title.toggle-off .toggle-icon:before,.lp-group-heading-title.toggle-on .toggle-icon:before{content:'+';}.lp-group-heading-title.toggle-on .toggle-icon:before{content:'-';}.payment-method-form.payment_method_authorizenet{background:#f7f7f7;border-radius:5px;-webkit-border-radius:5px;-moz-border-radius:5px;padding-top:25px;}.payment-method-form.payment_method_authorizenet .row-fluid{clear:both;padding-bottom:25px;}.payment-method-form.payment_method_authorizenet .row-fluid .span6:first-child{width:50%;float:left;width:100%;margin-bottom:15px;}.payment-method-form.payment_method_authorizenet .row-fluid .span6:first-child label{margin-left:17px;}.payment-method-form.payment_method_authorizenet .row-fluid .span6:first-child select,.payment-method-form.payment_method_authorizenet .row-fluid .span6:first-child input{margin-left:10px;}.payment-method-form.payment_method_authorizenet .row-fluid .span6 select,.payment-method-form.payment_method_authorizenet .row-fluid .span6 input{padding:8px 0;}.payment-method-form.payment_method_authorizenet .row-fluid .span6 select.required{color:#000;color:#000;}.place-order-action{margin-top:20px;}.woocommerce form .form-row.validate-email,.woocommerce form .form-row.validate-phone{width:100% !important;}.woocommerce .checkout_coupon .form-row-last input.button{padding:13px 10px !important;}.learn-press-search-course-form{margin-bottom:20px;}.learn-press-search-course-form input.search-course-input[name="s"]{margin-right:-200px;width:100%;}.learn-press-search-course-form .search-course-button{vertical-align:middle;float:right;z-index:10;position:relative;}.recent-courses-widget .course-meta-data > div,.popular-courses-widget .course-meta-data > div,.featured-courses-widget .course-meta-data > div{display:inline-block;}.recent-courses-widget .course-meta-data > div:after,.popular-courses-widget .course-meta-data > div:after,.featured-courses-widget .course-meta-data > div:after{content:'/';}.recent-courses-widget .course-meta-data > div:last-child:after,.popular-courses-widget .course-meta-data > div:last-child:after,.featured-courses-widget .course-meta-data > div:last-child:after{content:'';}.recent-courses-widget .course-title,.popular-courses-widget .course-title,.featured-courses-widget .course-title{margin:5px 0;}.recent-courses-widget .course-entry,.popular-courses-widget .course-entry,.featured-courses-widget .course-entry{margin-bottom:20px;}@-moz-keyframes spin-12{0% { -moz-transform:rotate(0deg) translate(0px);}100%{-moz-transform:rotate(360deg) translate(0px);-webkit-transform:rotate(360deg) translate(0px);transform:rotate(360deg) translate(0px);}}@-webkit-keyframes spin-12{0% { -webkit-transform:rotate(0deg) translate(0px);}}@keyframes spin-12{0% { -webkit-transform:rotate(0deg) translate(0px);transform:rotate(0deg) translate(0px);}}@-moz-keyframes spin-13{100% { -moz-transform:rotate(0deg) translate(0px);}0%{-moz-transform:rotate(360deg) translate(0px);-webkit-transform:rotate(360deg) translate(0px);transform:rotate(360deg) translate(0px);}}@-webkit-keyframes spin-13{0% { -webkit-transform:rotate(0deg) translate(0px);}}@keyframes spin-13{100% { -webkit-transform:rotate(0deg) translate(0px);transform:rotate(0deg) translate(0px);}}@media screen and (max-width: 1250px){.single-lp_course .learn-press-course-results-progress .items-progress, .single-lp_course .learn-press-course-results-progress .course-progress { float:none;width:100%;}}@media screen and (max-width: 768px){#learn-press-block-content:before { width: 60px;height:60px;margin-left:-30px;margin-top:-30px;-webkit-clip-path:polygon(0px 60px, 60px 60px, 60px 30px, 30px 30px, 30px 0, 0 0);}.learn-press-course-results-progress .items-progress, .learn-press-course-results-progress .course-progress{width:100%;margin-right:0;}}@media (min-width: 992px){.learn-press-courses li.course:nth-child(4n+1) { clear: left;}}@media (max-width: 992px){.learn-press-courses { margin:0;}}@media (max-width: 992px) and (min-width: 600px){.learn-press-courses li.course { width:31.33%;margin:0 2% 30px 0;}.learn-press-courses li.course:nth-child(3n+1){clear:left;margin-left:0;}}@media (max-width: 600px) and (min-width: 400px){.learn-press-courses li.course { width:48%;margin:0 2% 30px 0;}.learn-press-courses li.course:nth-child(2n+1){clear:left;margin-left:0;}}@media (max-width: 480px){.woocommerce .checkout_coupon .form-row { width:100%;}}@media (max-width: 400px){.learn-press-courses li.course { width:100%;margin:0 0 30px 0;clear:left;}}@media (max-width: 350px){#course-curriculum-popup #popup-sidebar { width:100%;}}@media screen and (min-width: 61.5625em){body.single-lp_course article.lp_course .entry-content { width:100%;}body.single-lp_course article.lp_course .entry-footer{display:none;}}@media screen and (max-width: 615px){.payment-method-form.payment_method_authorizenet .row-fluid { padding-bottom:15px;}.payment-method-form.payment_method_authorizenet .row-fluid .span6 label{margin-left:17px;}.payment-method-form.payment_method_authorizenet .row-fluid .span6 select, .payment-method-form.payment_method_authorizenet .row-fluid .span6 input{margin-left:10px;padding:8px 0;}.payment-method-form.payment_method_authorizenet .row-fluid .span6 #learn-press-authorizenet-payment-expmonth{margin-bottom:10px;}
|
assets/css/learnpress.css
CHANGED
@@ -1796,7 +1796,7 @@ body.block-content #learn-press-block-content {
|
|
1796 |
.learn-press-message {
|
1797 |
background: #F5F5F5;
|
1798 |
border-left: 5px solid #00A0D2;
|
1799 |
-
padding: 10px 20px
|
1800 |
margin-bottom: 20px;
|
1801 |
}
|
1802 |
.learn-press-message button {
|
1796 |
.learn-press-message {
|
1797 |
background: #F5F5F5;
|
1798 |
border-left: 5px solid #00A0D2;
|
1799 |
+
padding: 10px 20px 10px 20px;
|
1800 |
margin-bottom: 20px;
|
1801 |
}
|
1802 |
.learn-press-message button {
|
assets/css/learnpress.less
CHANGED
@@ -1309,7 +1309,7 @@ body.block-content {
|
|
1309 |
.learn-press-message {
|
1310 |
background: #F5F5F5;
|
1311 |
border-left: 5px solid #00A0D2;
|
1312 |
-
padding: 10px 20px
|
1313 |
margin-bottom: 20px;
|
1314 |
button {
|
1315 |
float: right;
|
1309 |
.learn-press-message {
|
1310 |
background: #F5F5F5;
|
1311 |
border-left: 5px solid #00A0D2;
|
1312 |
+
padding: 10px 20px 10px 20px;
|
1313 |
margin-bottom: 20px;
|
1314 |
button {
|
1315 |
float: right;
|
inc/admin/dashboard-statistics/class-lp-statistic-status.php
CHANGED
@@ -12,10 +12,15 @@ if ( !class_exists( 'LP_Statistic_Status' ) ) :
|
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
public static function render() {
|
15 |
-
|
16 |
-
$eduma_data
|
17 |
-
|
18 |
$specific_statuses = array( 'lp-completed', 'lp-failed', 'lp-on-hold' );
|
|
|
|
|
|
|
|
|
|
|
19 |
?>
|
20 |
<ul class="learnpress-statistic-status">
|
21 |
<li class="full-width">
|
@@ -26,31 +31,38 @@ if ( !class_exists( 'LP_Statistic_Status' ) ) :
|
|
26 |
</span>
|
27 |
</a>
|
28 |
</li>
|
29 |
-
<?php foreach ( $specific_statuses as $status ) :
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
<?php foreach ( $lp_order_statuses as $status => $args ) : if ( in_array( $status, $specific_statuses ) ) continue;
|
38 |
-
$count = count( learn_press_get_orders( array( 'post_status' => $status ) ) ); ?>
|
39 |
<li>
|
40 |
-
|
41 |
-
<
|
42 |
-
|
43 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
</li>
|
45 |
<?php endforeach; ?>
|
46 |
<li class="full-width featured-theme">
|
47 |
-
<
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
<
|
53 |
-
|
|
|
|
|
54 |
</li>
|
55 |
</ul>
|
56 |
<?php
|
12 |
* @since 2.0
|
13 |
*/
|
14 |
public static function render() {
|
15 |
+
$order_statuses = learn_press_get_register_order_statuses();
|
16 |
+
$eduma_data = self::get_eduma_info( 14058034 );
|
17 |
+
$xx = array_keys( $order_statuses );
|
18 |
$specific_statuses = array( 'lp-completed', 'lp-failed', 'lp-on-hold' );
|
19 |
+
foreach ( $xx as $status ) {
|
20 |
+
if ( !in_array( $status, $specific_statuses ) ) {
|
21 |
+
$specific_statuses[] = $status;
|
22 |
+
}
|
23 |
+
}
|
24 |
?>
|
25 |
<ul class="learnpress-statistic-status">
|
26 |
<li class="full-width">
|
31 |
</span>
|
32 |
</a>
|
33 |
</li>
|
34 |
+
<?php foreach ( $specific_statuses as $status ) : ?>
|
35 |
+
<?php
|
36 |
+
$status_object = get_post_status_object( $status );
|
37 |
+
if ( !$status_object ) {
|
38 |
+
continue;
|
39 |
+
}
|
40 |
+
$count = count( learn_press_get_orders( array( 'post_status' => $status ) ) );
|
41 |
+
?>
|
|
|
|
|
42 |
<li>
|
43 |
+
<?php if ( $count ): ?>
|
44 |
+
<a href="<?php echo esc_url( admin_url( 'edit.php?post_status=' . LP_ORDER_CPT . '&post_type=' . $status ) ); ?>" class="<?php echo esc_attr( $status ) ?>">
|
45 |
+
<span><?php printf( translate_nooped_plural( _n_noop( '%d order', '%d orders' ), $count, 'learnpress' ), $count ) ?></span>
|
46 |
+
<?php printf( '%s', $status_object->label ); ?>
|
47 |
+
</a>
|
48 |
+
<?php else: ?>
|
49 |
+
<span class="<?php echo esc_attr( $status ) ?>">
|
50 |
+
<span><?php printf( translate_nooped_plural( _n_noop( '%d order', '%d orders' ), $count, 'learnpress' ), $count ) ?></span>
|
51 |
+
<?php printf( '%s', $status_object->label ); ?>
|
52 |
+
</span>
|
53 |
+
<?php endif; ?>
|
54 |
</li>
|
55 |
<?php endforeach; ?>
|
56 |
<li class="full-width featured-theme">
|
57 |
+
<p>
|
58 |
+
<a href="<?php echo esc_url( $eduma_data['item']['url'] ) ?>">
|
59 |
+
<?php echo esc_html( $eduma_data['item']['item'] ) ?>
|
60 |
+
</a> - <?php printf( '%s%s', '$', $eduma_data['item']['cost'] ) ?>
|
61 |
+
</p>
|
62 |
+
<p>
|
63 |
+
<?php _e( 'Created by: ', 'learnpress' ) ?>
|
64 |
+
<a href="https://thimpress.com/" class="author"><?php echo esc_html( $eduma_data['item']['user'] ); ?></a>
|
65 |
+
</p>
|
66 |
</li>
|
67 |
</ul>
|
68 |
<?php
|
inc/admin/settings/class-lp-settings-courses.php
CHANGED
@@ -1,165 +1,176 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Class LP_Settings_Courses
|
5 |
-
*/
|
6 |
-
class LP_Settings_Courses extends LP_Settings_Base {
|
7 |
-
public function __construct() {
|
8 |
-
$this->id = 'courses';
|
9 |
-
$this->text = __( 'Courses', 'learnpress' );
|
10 |
-
|
11 |
-
parent::__construct();
|
12 |
-
}
|
13 |
-
|
14 |
-
public function _get_sections() {
|
15 |
-
$sections = array(
|
16 |
-
'general' => array(
|
17 |
-
'id' => 'general',
|
18 |
-
'title' => __( 'General', 'learnpress' )
|
19 |
-
)
|
20 |
-
);
|
21 |
-
return $sections = apply_filters( 'learn_press_settings_sections_' . $this->id, $sections );
|
22 |
-
}
|
23 |
-
|
24 |
-
public function save() {
|
25 |
-
parent::save();
|
26 |
-
$course_permalink = $_POST['learn_press_course_base'];
|
27 |
-
update_option( 'learn_press_course_base_type', $course_permalink );
|
28 |
-
if ( $course_permalink == 'custom' ) {
|
29 |
-
$course_permalink = trim( $_POST['course_permalink_structure'], '/' );
|
30 |
-
|
31 |
-
if ( '%course_category%' == $course_permalink ) {
|
32 |
-
$course_permalink = _x( 'courses', 'slug', 'learnpress' ) . '/' . $course_permalink;
|
33 |
-
}
|
34 |
-
|
35 |
-
$course_permalink = '/' . $course_permalink;
|
36 |
-
} elseif ( empty( $course_permalink ) ) {
|
37 |
-
$course_permalink = false;
|
38 |
-
}
|
39 |
-
|
40 |
-
$course_base = untrailingslashit( $course_permalink );
|
41 |
-
|
42 |
-
update_option( 'learn_press_course_base', $course_base );
|
43 |
-
|
44 |
-
$courses_page_id = learn_press_get_page_id( 'courses' );
|
45 |
-
$courses_permalink = ( $courses_page_id > 0 && get_post( $courses_page_id ) ) ? get_page_uri( $courses_page_id ) : _x( 'courses', 'default-slug', 'learnpress' );
|
46 |
-
|
47 |
-
if ( $courses_page_id && trim( $course_base, '/' ) === $courses_permalink ) {
|
48 |
-
update_option( 'learn_press_use_verbose_page_rules', 'yes' );
|
49 |
-
} else {
|
50 |
-
delete_option( 'learn_press_use_verbose_page_rules' );
|
51 |
-
}
|
52 |
-
}
|
53 |
-
|
54 |
-
public function output() {
|
55 |
-
$view = learn_press_get_admin_view( 'settings/courses.php' );
|
56 |
-
require_once $view;
|
57 |
-
}
|
58 |
-
|
59 |
-
public function get_settings() {
|
60 |
-
|
61 |
-
$generate_course_thumbnail = get_option( 'learn_press_generate_course_thumbnail' ) ? get_option( 'learn_press_generate_course_thumbnail' ) : 'no';
|
62 |
-
|
63 |
-
return apply_filters(
|
64 |
-
'learn_press_courses_settings',
|
65 |
-
array(
|
66 |
-
array(
|
67 |
-
'title' => __( 'Courses Page', 'learnpress' ),
|
68 |
-
'id' => $this->get_field_name( 'courses_page_id' ),
|
69 |
-
'default' => '',
|
70 |
-
'type' => 'pages-dropdown'
|
71 |
-
),
|
72 |
-
array(
|
73 |
-
'title' => __( 'Course category base', 'learnpress' ),
|
74 |
-
'id' => $this->get_field_name( 'course_category_base' ),
|
75 |
-
'default' => 'course-category',
|
76 |
-
'type' => 'text'
|
77 |
-
),
|
78 |
-
array(
|
79 |
-
'title' => __( 'Course tag base', 'learnpress' ),
|
80 |
-
'id' => $this->get_field_name( 'course_tag_base' ),
|
81 |
-
'default' => 'course-tag',
|
82 |
-
'type' => 'text'
|
83 |
-
),
|
84 |
-
array(
|
85 |
-
'title' => __( 'Review course before publish', 'learnpress' ),
|
86 |
-
'desc' => __( 'The course needs to be reviewed by admin before it can be published.', 'learnpress' ),
|
87 |
-
'id' => $this->get_field_name( 'required_review' ),
|
88 |
-
'default' => 'yes',
|
89 |
-
'type' => 'checkbox'
|
90 |
-
),
|
91 |
-
array(
|
92 |
-
'title' => __( 'Enable edit published course', 'learnpress' ),
|
93 |
-
'desc' => __( 'Allow instructors to edit the course that are published without review.<br /> If this option is disabled, the course status will be changed to Pending Review when the instructor update course.', 'learnpress' ),
|
94 |
-
'id' => $this->get_field_name( 'enable_edit_published' ),
|
95 |
-
'default' => 'yes',
|
96 |
-
'type' => 'checkbox'
|
97 |
-
),
|
98 |
-
array(
|
99 |
-
'title' => __( 'Show list of question in quiz', 'learnpress' ),
|
100 |
-
'desc' => __( 'Show/Hide list questions in quiz.', 'learnpress' ),
|
101 |
-
'id' => $this->get_field_name( 'disable_question_in_quiz' ),
|
102 |
-
'default' => 'yes',
|
103 |
-
'type' => 'checkbox'
|
104 |
-
),
|
105 |
-
array(
|
106 |
-
'title' => __( 'Archive', 'learnpress' ),
|
107 |
-
'type' => 'title'
|
108 |
-
),
|
109 |
-
array(
|
110 |
-
'title' => __( 'Courses limit', 'learnpress' ),
|
111 |
-
'desc' => __( 'Number of courses displayed per page.', 'learnpress' ),
|
112 |
-
'id' => $this->get_field_name( 'archive_course_limit' ),
|
113 |
-
'default' => '10',
|
114 |
-
'type' => 'number',
|
115 |
-
'custom_attributes' => array(
|
116 |
-
'min' => '1'
|
117 |
-
)
|
118 |
-
),
|
119 |
-
array(
|
120 |
-
'title' => __( 'Course thumbnail', 'learnpress' ),
|
121 |
-
'type' => 'title'
|
122 |
-
),
|
123 |
-
array(
|
124 |
-
'title' => __( 'Extra thumbnail', 'learnpress' ),
|
125 |
-
'id' => $this->get_field_name( 'generate_course_thumbnail' ),
|
126 |
-
'default' => 'yes',
|
127 |
-
'type' => 'checkbox',
|
128 |
-
'desc' => __( 'Turn on/off courses extra thumbnail', 'learnpress' ),
|
129 |
-
),
|
130 |
-
array(
|
131 |
-
'title' => __( 'Single course', 'learnpress' ),
|
132 |
-
'id' => $this->get_field_name( 'single_course_image_size' ),
|
133 |
-
'default' => array( 800, 450, 'yes' ),
|
134 |
-
'type' => 'image-size',
|
135 |
-
'class' => 'single-course-thumbnail' . ( ( $generate_course_thumbnail == 'no' ) ? ' hide-if-js' : '' )
|
136 |
-
),
|
137 |
-
array(
|
138 |
-
'title' => __( 'Courses page', 'learnpress' ),
|
139 |
-
'id' => $this->get_field_name( 'course_thumbnail_image_size' ),
|
140 |
-
'default' => array( 400, 250, 'yes' ),
|
141 |
-
'type' => 'image-size',
|
142 |
-
'class' => 'archive-course-thumbnail' . ( ( $generate_course_thumbnail == 'no' ) ? ' hide-if-js' : '' )
|
143 |
-
),
|
144 |
-
array(
|
145 |
-
'title' => __( 'Single course permalink', 'learnpress' ),
|
146 |
-
'type' => 'title'
|
147 |
-
),
|
148 |
-
array(
|
149 |
-
'title' => __( 'Single course permalink', 'learnpress' ),
|
150 |
-
'type' => 'course-permalink',
|
151 |
-
'default' => ''
|
152 |
-
)
|
153 |
-
array(
|
154 |
-
'title'
|
155 |
-
'type'
|
156 |
-
|
157 |
-
|
158 |
-
'
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
return new LP_Settings_Courses();
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class LP_Settings_Courses
|
5 |
+
*/
|
6 |
+
class LP_Settings_Courses extends LP_Settings_Base {
|
7 |
+
public function __construct() {
|
8 |
+
$this->id = 'courses';
|
9 |
+
$this->text = __( 'Courses', 'learnpress' );
|
10 |
+
|
11 |
+
parent::__construct();
|
12 |
+
}
|
13 |
+
|
14 |
+
public function _get_sections() {
|
15 |
+
$sections = array(
|
16 |
+
'general' => array(
|
17 |
+
'id' => 'general',
|
18 |
+
'title' => __( 'General', 'learnpress' )
|
19 |
+
)
|
20 |
+
);
|
21 |
+
return $sections = apply_filters( 'learn_press_settings_sections_' . $this->id, $sections );
|
22 |
+
}
|
23 |
+
|
24 |
+
public function save() {
|
25 |
+
parent::save();
|
26 |
+
$course_permalink = $_POST['learn_press_course_base'];
|
27 |
+
update_option( 'learn_press_course_base_type', $course_permalink );
|
28 |
+
if ( $course_permalink == 'custom' ) {
|
29 |
+
$course_permalink = trim( $_POST['course_permalink_structure'], '/' );
|
30 |
+
|
31 |
+
if ( '%course_category%' == $course_permalink ) {
|
32 |
+
$course_permalink = _x( 'courses', 'slug', 'learnpress' ) . '/' . $course_permalink;
|
33 |
+
}
|
34 |
+
|
35 |
+
$course_permalink = '/' . $course_permalink;
|
36 |
+
} elseif ( empty( $course_permalink ) ) {
|
37 |
+
$course_permalink = false;
|
38 |
+
}
|
39 |
+
|
40 |
+
$course_base = untrailingslashit( $course_permalink );
|
41 |
+
|
42 |
+
update_option( 'learn_press_course_base', $course_base );
|
43 |
+
|
44 |
+
$courses_page_id = learn_press_get_page_id( 'courses' );
|
45 |
+
$courses_permalink = ( $courses_page_id > 0 && get_post( $courses_page_id ) ) ? get_page_uri( $courses_page_id ) : _x( 'courses', 'default-slug', 'learnpress' );
|
46 |
+
|
47 |
+
if ( $courses_page_id && trim( $course_base, '/' ) === $courses_permalink ) {
|
48 |
+
update_option( 'learn_press_use_verbose_page_rules', 'yes' );
|
49 |
+
} else {
|
50 |
+
delete_option( 'learn_press_use_verbose_page_rules' );
|
51 |
+
}
|
52 |
+
}
|
53 |
+
|
54 |
+
public function output() {
|
55 |
+
$view = learn_press_get_admin_view( 'settings/courses.php' );
|
56 |
+
require_once $view;
|
57 |
+
}
|
58 |
+
|
59 |
+
public function get_settings() {
|
60 |
+
|
61 |
+
$generate_course_thumbnail = get_option( 'learn_press_generate_course_thumbnail' ) ? get_option( 'learn_press_generate_course_thumbnail' ) : 'no';
|
62 |
+
|
63 |
+
return apply_filters(
|
64 |
+
'learn_press_courses_settings',
|
65 |
+
array(
|
66 |
+
array(
|
67 |
+
'title' => __( 'Courses Page', 'learnpress' ),
|
68 |
+
'id' => $this->get_field_name( 'courses_page_id' ),
|
69 |
+
'default' => '',
|
70 |
+
'type' => 'pages-dropdown'
|
71 |
+
),
|
72 |
+
array(
|
73 |
+
'title' => __( 'Course category base', 'learnpress' ),
|
74 |
+
'id' => $this->get_field_name( 'course_category_base' ),
|
75 |
+
'default' => 'course-category',
|
76 |
+
'type' => 'text'
|
77 |
+
),
|
78 |
+
array(
|
79 |
+
'title' => __( 'Course tag base', 'learnpress' ),
|
80 |
+
'id' => $this->get_field_name( 'course_tag_base' ),
|
81 |
+
'default' => 'course-tag',
|
82 |
+
'type' => 'text'
|
83 |
+
),
|
84 |
+
array(
|
85 |
+
'title' => __( 'Review course before publish', 'learnpress' ),
|
86 |
+
'desc' => __( 'The course needs to be reviewed by admin before it can be published.', 'learnpress' ),
|
87 |
+
'id' => $this->get_field_name( 'required_review' ),
|
88 |
+
'default' => 'yes',
|
89 |
+
'type' => 'checkbox'
|
90 |
+
),
|
91 |
+
array(
|
92 |
+
'title' => __( 'Enable edit published course', 'learnpress' ),
|
93 |
+
'desc' => __( 'Allow instructors to edit the course that are published without review.<br /> If this option is disabled, the course status will be changed to Pending Review when the instructor update course.', 'learnpress' ),
|
94 |
+
'id' => $this->get_field_name( 'enable_edit_published' ),
|
95 |
+
'default' => 'yes',
|
96 |
+
'type' => 'checkbox'
|
97 |
+
),
|
98 |
+
array(
|
99 |
+
'title' => __( 'Show list of question in quiz', 'learnpress' ),
|
100 |
+
'desc' => __( 'Show/Hide list questions in quiz.', 'learnpress' ),
|
101 |
+
'id' => $this->get_field_name( 'disable_question_in_quiz' ),
|
102 |
+
'default' => 'yes',
|
103 |
+
'type' => 'checkbox'
|
104 |
+
),
|
105 |
+
array(
|
106 |
+
'title' => __( 'Archive', 'learnpress' ),
|
107 |
+
'type' => 'title'
|
108 |
+
),
|
109 |
+
array(
|
110 |
+
'title' => __( 'Courses limit', 'learnpress' ),
|
111 |
+
'desc' => __( 'Number of courses displayed per page.', 'learnpress' ),
|
112 |
+
'id' => $this->get_field_name( 'archive_course_limit' ),
|
113 |
+
'default' => '10',
|
114 |
+
'type' => 'number',
|
115 |
+
'custom_attributes' => array(
|
116 |
+
'min' => '1'
|
117 |
+
)
|
118 |
+
),
|
119 |
+
array(
|
120 |
+
'title' => __( 'Course thumbnail', 'learnpress' ),
|
121 |
+
'type' => 'title'
|
122 |
+
),
|
123 |
+
array(
|
124 |
+
'title' => __( 'Extra thumbnail', 'learnpress' ),
|
125 |
+
'id' => $this->get_field_name( 'generate_course_thumbnail' ),
|
126 |
+
'default' => 'yes',
|
127 |
+
'type' => 'checkbox',
|
128 |
+
'desc' => __( 'Turn on/off courses extra thumbnail', 'learnpress' ),
|
129 |
+
),
|
130 |
+
array(
|
131 |
+
'title' => __( 'Single course', 'learnpress' ),
|
132 |
+
'id' => $this->get_field_name( 'single_course_image_size' ),
|
133 |
+
'default' => array( 800, 450, 'yes' ),
|
134 |
+
'type' => 'image-size',
|
135 |
+
'class' => 'single-course-thumbnail' . ( ( $generate_course_thumbnail == 'no' ) ? ' hide-if-js' : '' )
|
136 |
+
),
|
137 |
+
array(
|
138 |
+
'title' => __( 'Courses page', 'learnpress' ),
|
139 |
+
'id' => $this->get_field_name( 'course_thumbnail_image_size' ),
|
140 |
+
'default' => array( 400, 250, 'yes' ),
|
141 |
+
'type' => 'image-size',
|
142 |
+
'class' => 'archive-course-thumbnail' . ( ( $generate_course_thumbnail == 'no' ) ? ' hide-if-js' : '' )
|
143 |
+
),
|
144 |
+
array(
|
145 |
+
'title' => __( 'Single course permalink', 'learnpress' ),
|
146 |
+
'type' => 'title'
|
147 |
+
),
|
148 |
+
array(
|
149 |
+
'title' => __( 'Single course permalink', 'learnpress' ),
|
150 |
+
'type' => 'course-permalink',
|
151 |
+
'default' => ''
|
152 |
+
),
|
153 |
+
array(
|
154 |
+
'title' => __( 'Course item slug', 'learnpress' ),
|
155 |
+
'type' => 'title'
|
156 |
+
),
|
157 |
+
array(
|
158 |
+
'title' => __( 'Lesson', 'learnpress' ),
|
159 |
+
'type' => 'text',
|
160 |
+
'id' => $this->get_field_name( 'lesson_slug' ),
|
161 |
+
'desc' => __( sprintf( '%s/course/sample-course/<code>lessons</code>/sample-lesson/', home_url() ), 'learnpress' ),
|
162 |
+
'default' => 'lessons'
|
163 |
+
),
|
164 |
+
array(
|
165 |
+
'title' => __( 'Quiz', 'learnpress' ),
|
166 |
+
'type' => 'text',
|
167 |
+
'id' => $this->get_field_name( 'quiz_slug' ),
|
168 |
+
'desc' => __( sprintf( '%s/course/sample-course/<code>quizzes</code>/sample-lesson/', home_url() ), 'learnpress' ),
|
169 |
+
'default' => 'quizzes'
|
170 |
+
)
|
171 |
+
)
|
172 |
+
);
|
173 |
+
}
|
174 |
+
}
|
175 |
+
|
176 |
return new LP_Settings_Courses();
|
inc/admin/views/settings/emails/email-template.php
CHANGED
@@ -72,8 +72,10 @@ $email_format = $settings->get( 'emails_' . $this->id . '.email_format', 'plain_
|
|
72 |
</div>
|
73 |
|
74 |
<?php if ( !$has_local_file ): ?>
|
75 |
-
<?php if ( $this->
|
76 |
-
<p
|
|
|
|
|
77 |
<ol class="learn-press-email-variables<?php echo $template_type == 'html' ? ' has-editor' : ''; ?>" data-target="<?php echo esc_attr( 'learn_press_emails_' . $this->id . '_' . $template_type ); ?>">
|
78 |
<?php foreach ( $this->support_variables as $variable ): ?>
|
79 |
<li data-variable="<?php echo esc_attr( $variable ); ?>">
|
72 |
</div>
|
73 |
|
74 |
<?php if ( !$has_local_file ): ?>
|
75 |
+
<?php if ( $this->get_variables_support() ): ?>
|
76 |
+
<p>
|
77 |
+
<strong><?php esc_html_e( 'Click on variables to add it into email content', 'learnpress' ); ?></strong>
|
78 |
+
</p>
|
79 |
<ol class="learn-press-email-variables<?php echo $template_type == 'html' ? ' has-editor' : ''; ?>" data-target="<?php echo esc_attr( 'learn_press_emails_' . $this->id . '_' . $template_type ); ?>">
|
80 |
<?php foreach ( $this->support_variables as $variable ): ?>
|
81 |
<li data-variable="<?php echo esc_attr( $variable ); ?>">
|
inc/class-lp-emails.php
CHANGED
@@ -138,10 +138,8 @@ class LP_Emails {
|
|
138 |
if ( !$user = learn_press_get_user( $user_id ) ) {
|
139 |
return;
|
140 |
}
|
141 |
-
|
142 |
-
|
143 |
-
$mail->trigger( $course_id, $user->id, $result );
|
144 |
-
}
|
145 |
}
|
146 |
|
147 |
/**
|
138 |
if ( !$user = learn_press_get_user( $user_id ) ) {
|
139 |
return;
|
140 |
}
|
141 |
+
$mail = $this->emails['LP_Email_Finished_Course'];
|
142 |
+
$mail->trigger( $course_id, $user->id, $result );
|
|
|
|
|
143 |
}
|
144 |
|
145 |
/**
|
inc/class-lp-page-controller.php
CHANGED
@@ -73,7 +73,7 @@ class LP_Page_Controller {
|
|
73 |
}*/
|
74 |
|
75 |
public function template_loader( $template ) {
|
76 |
-
global $wp_query, $post;
|
77 |
$file = '';
|
78 |
$find = array();
|
79 |
$theme_template = learn_press_template_path();
|
@@ -85,6 +85,19 @@ class LP_Page_Controller {
|
|
85 |
if ( is_post_type_archive( 'lp_course' ) ) {
|
86 |
if ( ( $page_id = learn_press_get_page_id( 'courses' ) ) && ( empty( $wp_query->queried_object_id ) || !empty( $wp_query->queried_object_id ) && $page_id != $wp_query->queried_object_id ) ) {
|
87 |
$redirect = trailingslashit( learn_press_get_page_link( 'courses' ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
// Prevent loop redirect
|
89 |
if ( $page_id != get_option( 'page_on_front' ) && !learn_press_is_current_url( $redirect ) ) {
|
90 |
wp_redirect( $redirect );
|
@@ -127,6 +140,7 @@ class LP_Page_Controller {
|
|
127 |
$file = 'archive-course.php';
|
128 |
$find[] = $file;
|
129 |
$find[] = "{$theme_template}/{$file}";
|
|
|
130 |
} else {
|
131 |
if ( learn_press_is_course() ) {
|
132 |
$file = 'single-course.php';
|
@@ -241,6 +255,7 @@ class LP_Page_Controller {
|
|
241 |
$wp_query->is_singular = false;
|
242 |
$wp_query->is_posts_page = false;
|
243 |
$wp_query->is_post_type_archive = false;
|
|
|
244 |
}
|
245 |
return $template;
|
246 |
}
|
@@ -255,6 +270,7 @@ class LP_Page_Controller {
|
|
255 |
if ( LP_COURSE_CPT != get_post_type() ) {
|
256 |
return $content;
|
257 |
}
|
|
|
258 |
remove_filter( 'the_content', array( $this, 'single_content' ), $this->_filter_content_priority );
|
259 |
add_filter( 'the_content', 'wpautop' );
|
260 |
ob_start();
|
@@ -286,12 +302,12 @@ class LP_Page_Controller {
|
|
286 |
|
287 |
$this->queried_object = !empty( $q->queried_object_id ) ? $q->queried_object : false;
|
288 |
|
|
|
289 |
/**
|
290 |
* If is single course content
|
291 |
*/
|
292 |
if ( $q->get( 'post_type' ) == 'lp_course' && is_single() ) {
|
293 |
global $post;
|
294 |
-
|
295 |
/**
|
296 |
* Added in LP 2.0.5 to fix issue in some cases course become 404
|
297 |
* including case course link is valid but it also get 404 if
|
@@ -388,9 +404,6 @@ class LP_Page_Controller {
|
|
388 |
|
389 |
$q->set( 'post_type', 'lp_course' );
|
390 |
$q->set( 'page_id', '' );
|
391 |
-
if ( isset( $q->query['paged'] ) ) {
|
392 |
-
$q->set( 'paged', $q->query['paged'] );
|
393 |
-
}
|
394 |
|
395 |
global $wp_post_types;
|
396 |
|
@@ -413,6 +426,10 @@ class LP_Page_Controller {
|
|
413 |
$q->set( 'posts_per_page', $limit );
|
414 |
}
|
415 |
|
|
|
|
|
|
|
|
|
416 |
add_action( 'pre_get_posts', array( $this, 'pre_get_posts' ), 10 );
|
417 |
|
418 |
return $q;
|
73 |
}*/
|
74 |
|
75 |
public function template_loader( $template ) {
|
76 |
+
global $wp_query, $post, $wp_rewrite;
|
77 |
$file = '';
|
78 |
$find = array();
|
79 |
$theme_template = learn_press_template_path();
|
85 |
if ( is_post_type_archive( 'lp_course' ) ) {
|
86 |
if ( ( $page_id = learn_press_get_page_id( 'courses' ) ) && ( empty( $wp_query->queried_object_id ) || !empty( $wp_query->queried_object_id ) && $page_id != $wp_query->queried_object_id ) ) {
|
87 |
$redirect = trailingslashit( learn_press_get_page_link( 'courses' ) );
|
88 |
+
|
89 |
+
if ( !empty( $wp_query->query['paged'] ) ) {
|
90 |
+
if ( $wp_rewrite->using_permalinks() ) {
|
91 |
+
$redirect = $redirect . 'page/' . $wp_query->query['paged'];
|
92 |
+
} else {
|
93 |
+
$redirect = add_query_arg( 'paged', $wp_query->query['paged'], $redirect );
|
94 |
+
}
|
95 |
+
}
|
96 |
+
if ( $_GET ) {
|
97 |
+
foreach ( $_GET as $k => $v ) {
|
98 |
+
$redirect = add_query_arg( $k, urlencode( $v ), $redirect );
|
99 |
+
}
|
100 |
+
}
|
101 |
// Prevent loop redirect
|
102 |
if ( $page_id != get_option( 'page_on_front' ) && !learn_press_is_current_url( $redirect ) ) {
|
103 |
wp_redirect( $redirect );
|
140 |
$file = 'archive-course.php';
|
141 |
$find[] = $file;
|
142 |
$find[] = "{$theme_template}/{$file}";
|
143 |
+
|
144 |
} else {
|
145 |
if ( learn_press_is_course() ) {
|
146 |
$file = 'single-course.php';
|
255 |
$wp_query->is_singular = false;
|
256 |
$wp_query->is_posts_page = false;
|
257 |
$wp_query->is_post_type_archive = false;
|
258 |
+
|
259 |
}
|
260 |
return $template;
|
261 |
}
|
270 |
if ( LP_COURSE_CPT != get_post_type() ) {
|
271 |
return $content;
|
272 |
}
|
273 |
+
|
274 |
remove_filter( 'the_content', array( $this, 'single_content' ), $this->_filter_content_priority );
|
275 |
add_filter( 'the_content', 'wpautop' );
|
276 |
ob_start();
|
302 |
|
303 |
$this->queried_object = !empty( $q->queried_object_id ) ? $q->queried_object : false;
|
304 |
|
305 |
+
global $wp, $wp_rewrite;
|
306 |
/**
|
307 |
* If is single course content
|
308 |
*/
|
309 |
if ( $q->get( 'post_type' ) == 'lp_course' && is_single() ) {
|
310 |
global $post;
|
|
|
311 |
/**
|
312 |
* Added in LP 2.0.5 to fix issue in some cases course become 404
|
313 |
* including case course link is valid but it also get 404 if
|
404 |
|
405 |
$q->set( 'post_type', 'lp_course' );
|
406 |
$q->set( 'page_id', '' );
|
|
|
|
|
|
|
407 |
|
408 |
global $wp_post_types;
|
409 |
|
426 |
$q->set( 'posts_per_page', $limit );
|
427 |
}
|
428 |
|
429 |
+
if ( isset( $q->query['page'] ) ) {
|
430 |
+
$q->set( 'paged', $q->query['page'] );
|
431 |
+
}
|
432 |
+
|
433 |
add_action( 'pre_get_posts', array( $this, 'pre_get_posts' ), 10 );
|
434 |
|
435 |
return $q;
|
inc/class-lp-query.php
CHANGED
@@ -1,482 +1,507 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
/**
|
4 |
-
* Class LP_Query
|
5 |
-
*/
|
6 |
-
|
7 |
-
defined( 'ABSPATH' ) || exit;
|
8 |
-
|
9 |
-
class LP_Query {
|
10 |
-
/**
|
11 |
-
* @var array
|
12 |
-
*/
|
13 |
-
public $query_vars = array();
|
14 |
-
|
15 |
-
/**
|
16 |
-
* LP_Query constructor.
|
17 |
-
*/
|
18 |
-
public function __construct() {
|
19 |
-
add_action( 'init', array( $this, 'add_rewrite_tags' ), 1000, 0 );
|
20 |
-
add_action( 'init', array( $this, 'add_rewrite_rules' ), 1000, 0 );
|
21 |
-
add_action( 'parse_query', array( $this, 'parse_request' ), 1000, 1 );
|
22 |
-
/**
|
23 |
-
* Add searching post by taxonomies
|
24 |
-
*/
|
25 |
-
add_action( 'pre_get_posts', array( $this, 'query_taxonomy' ) );
|
26 |
-
}
|
27 |
-
|
28 |
-
/**
|
29 |
-
* Parses request params and controls page
|
30 |
-
*
|
31 |
-
* @param WP_Query $q
|
32 |
-
*
|
33 |
-
* @return mixed
|
34 |
-
*/
|
35 |
-
public function parse_request( $q ) {
|
36 |
-
if ( did_action( 'learn_press_parse_query' ) ) {
|
37 |
-
return $q;
|
38 |
-
}
|
39 |
-
$user = learn_press_get_current_user();
|
40 |
-
$request = $this->get_request();
|
41 |
-
if ( !$request || is_admin() ) {
|
42 |
-
return $q;
|
43 |
-
}
|
44 |
-
remove_filter( 'do_parse_request', array( $this, 'get_current_quiz_question' ), 1010, 3 );
|
45 |
-
$course_type = 'lp_course';
|
46 |
-
$post_types = get_post_types( '', 'objects' );
|
47 |
-
|
48 |
-
if ( empty( $post_types[$course_type] ) ) {
|
49 |
-
return;
|
50 |
-
}
|
51 |
-
/********************/
|
52 |
-
if ( empty( $q->query_vars[LP_COURSE_CPT] ) ) {
|
53 |
-
return;
|
54 |
-
}
|
55 |
-
$this->query_vars['course'] = $q->query_vars[LP_COURSE_CPT];
|
56 |
-
$course_id = learn_press_setup_course_data( $this->query_vars['course'] );
|
57 |
-
$quiz_name = '';
|
58 |
-
$question_name = '';
|
59 |
-
$lesson_name = '';
|
60 |
-
if ( !empty( $q->query_vars['quiz'] ) ) {
|
61 |
-
$quiz_name = $this->query_vars['quiz'] = $q->query_vars['quiz'];
|
62 |
-
$this->query_vars['item_type'] = LP_QUIZ_CPT;
|
63 |
-
if ( !empty( $q->query_vars['question'] ) ) {
|
64 |
-
$question_name = $this->query_vars['question'] = $q->query_vars['question'];
|
65 |
-
}
|
66 |
-
} elseif ( !empty( $q->query_vars['lesson'] ) ) {
|
67 |
-
$lesson_name = $this->query_vars['lesson'] = $q->query_vars['lesson'];
|
68 |
-
$this->query_vars['item_type'] = LP_LESSON_CPT;
|
69 |
-
}
|
70 |
-
if ( $quiz_name && $question_name ) {
|
71 |
-
if ( $quiz = learn_press_get_post_by_name( $quiz_name, LP_QUIZ_CPT ) ) {
|
72 |
-
if ( $user->has_quiz_status( 'completed', $quiz->ID, $course_id ) ) {
|
73 |
-
//remove question name from uri
|
74 |
-
$course = learn_press_get_course( $course_id );
|
75 |
-
$redirect = $course->get_item_link( $quiz->ID );// get_site_url() . '/' . dirname( $request_match );
|
76 |
-
wp_redirect( $redirect );
|
77 |
-
exit();
|
78 |
-
}
|
79 |
-
if ( $question = learn_press_get_post_by_name( $question_name, 'lp_question' ) ) {
|
80 |
-
global $wpdb;
|
81 |
-
$query = $wpdb->prepare( "
|
82 |
-
SELECT MAX(user_item_id)
|
83 |
-
FROM {$wpdb->prefix}learnpress_user_items
|
84 |
-
WHERE user_id = %d AND item_id = %d AND item_type = %s and status <> %s
|
85 |
-
", learn_press_get_current_user_id(), $quiz->ID, 'lp_quiz', 'completed' );
|
86 |
-
if ( $history_id = $wpdb->get_var( $query ) ) {
|
87 |
-
learn_press_update_user_item_meta( $history_id, 'current_question', $question->ID );
|
88 |
-
}
|
89 |
-
}
|
90 |
-
}
|
91 |
-
}
|
92 |
-
$this->query_vars['course_id'] = $course_id;
|
93 |
-
do_action_ref_array( 'learn_press_parse_query', array( &$this ) );
|
94 |
-
|
95 |
-
return $q;
|
96 |
-
/************************/
|
97 |
-
$slug = preg_replace( '!^/!', '', $post_types[$course_type]->rewrite['slug'] );
|
98 |
-
|
99 |
-
$match = '^' . $slug . '/([^/]*)/(' . $post_types['lp_quiz']->rewrite['slug'] . ')?/([^/]*)?/?([^/]*)?';
|
100 |
-
|
101 |
-
$request_match = $request;
|
102 |
-
$course_id = 0;
|
103 |
-
if ( !empty( $q->query_vars['post_type'] ) && $q->query_vars['post_type'] == LP_COURSE_CPT ) {
|
104 |
-
if ( !empty( $q->query_vars[LP_COURSE_CPT] ) ) {
|
105 |
-
$this->query_vars['course'] = $q->query_vars[LP_COURSE_CPT];
|
106 |
-
$course_id = learn_press_setup_course_data( $this->query_vars['course'] );
|
107 |
-
}
|
108 |
-
if ( !empty( $q->query_vars['quiz'] ) ) {
|
109 |
-
$this->query_vars['quiz'] = $q->query_vars['quiz'];
|
110 |
-
$this->query_vars['item_type'] = LP_QUIZ_CPT;
|
111 |
-
} elseif ( !empty( $q->query_vars['lesson'] ) ) {
|
112 |
-
$this->query_vars['lesson'] = $q->query_vars['lesson'];
|
113 |
-
$this->query_vars['item_type'] = LP_LESSON_CPT;
|
114 |
-
}
|
115 |
-
}
|
116 |
-
|
117 |
-
/**
|
118 |
-
* Match request URI with quiz permalink
|
119 |
-
*/
|
120 |
-
if ( preg_match( "#^$match#", $request_match, $matches ) || preg_match( "#^$match#", urldecode( $request_match ), $matches ) ) {
|
121 |
-
|
122 |
-
// If request URI is a quiz permalink
|
123 |
-
if ( !empty( $matches[3] ) ) {
|
124 |
-
if ( !$post = learn_press_get_post_by_name( $matches[3], 'lp_quiz', true ) ) {
|
125 |
-
return $q;
|
126 |
-
}
|
127 |
-
// If request URI does not contains a question
|
128 |
-
// Try to get current question of current user and put it into URI
|
129 |
-
if ( empty( $matches[4] ) ) {
|
130 |
-
if ( $user->has_quiz_status( 'started', $post->ID, $course_id ) && $question_id = $user->get_current_quiz_question( $post->ID, $course_id ) ) {
|
131 |
-
$this->query_vars['question'] = $q->query_vars['question'] = get_post_field( 'post_name', $question_id );
|
132 |
-
}
|
133 |
-
} else {
|
134 |
-
// If user is viewing a question then update current question for user
|
135 |
-
$question = learn_press_get_post_by_name( $matches[4], 'lp_question' );
|
136 |
-
/**
|
137 |
-
* If user has completed a quiz but they are accessing to a question inside quiz,
|
138 |
-
* redirect them back to quiz to show results of that quiz instead
|
139 |
-
*/
|
140 |
-
if ( $user->has_quiz_status( 'completed', $post->ID, $course_id ) ) {
|
141 |
-
//remove question name from uri
|
142 |
-
$redirect = get_site_url() . '/' . dirname( $request_match );
|
143 |
-
wp_redirect( $redirect );
|
144 |
-
exit();
|
145 |
-
}
|
146 |
-
if ( $question ) {
|
147 |
-
global $wpdb;
|
148 |
-
$query = $wpdb->prepare( "
|
149 |
-
SELECT MAX(user_item_id)
|
150 |
-
FROM {$wpdb->prefix}learnpress_user_items
|
151 |
-
WHERE user_id = %d AND item_id = %d AND item_type = %s and status <> %s
|
152 |
-
", learn_press_get_current_user_id(), $post->ID, 'lp_quiz', 'completed' );
|
153 |
-
if ( $history_id = $wpdb->get_var( $query ) ) {
|
154 |
-
learn_press_update_user_item_meta( $history_id, 'current_question', $question->ID );
|
155 |
-
}
|
156 |
-
}
|
157 |
-
}
|
158 |
-
}
|
159 |
-
}
|
160 |
-
$this->query_vars['course_id'] = $course_id;
|
161 |
-
do_action_ref_array( 'learn_press_parse_query', array( &$this ) );
|
162 |
-
return $q;
|
163 |
-
}
|
164 |
-
|
165 |
-
/**
|
166 |
-
* This function is cloned from wp core function
|
167 |
-
*
|
168 |
-
* @see WP()->parse_request()
|
169 |
-
*
|
170 |
-
* @return string
|
171 |
-
*/
|
172 |
-
public function get_request() {
|
173 |
-
global $wp_rewrite;
|
174 |
-
$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : '';
|
175 |
-
list( $pathinfo ) = explode( '?', $pathinfo );
|
176 |
-
$pathinfo = str_replace( "%", "%25", $pathinfo );
|
177 |
-
|
178 |
-
list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );
|
179 |
-
$self = $_SERVER['PHP_SELF'];
|
180 |
-
$home_path = trim( parse_url( home_url(), PHP_URL_PATH ), '/' );
|
181 |
-
$home_path_regex = sprintf( '|^%s|i', preg_quote( $home_path, '|' ) );
|
182 |
-
|
183 |
-
// Trim path info from the end and the leading home path from the
|
184 |
-
// front. For path info requests, this leaves us with the requesting
|
185 |
-
// filename, if any. For 404 requests, this leaves us with the
|
186 |
-
// requested permalink.
|
187 |
-
$req_uri = str_replace( $pathinfo, '', $req_uri );
|
188 |
-
$req_uri = trim( $req_uri, '/' );
|
189 |
-
$req_uri = preg_replace( $home_path_regex, '', $req_uri );
|
190 |
-
$req_uri = trim( $req_uri, '/' );
|
191 |
-
$pathinfo = trim( $pathinfo, '/' );
|
192 |
-
$pathinfo = preg_replace( $home_path_regex, '', $pathinfo );
|
193 |
-
$pathinfo = trim( $pathinfo, '/' );
|
194 |
-
$self = trim( $self, '/' );
|
195 |
-
$self = preg_replace( $home_path_regex, '', $self );
|
196 |
-
$self = trim( $self, '/' );
|
197 |
-
|
198 |
-
// The requested permalink is in $pathinfo for path info requests and
|
199 |
-
// $req_uri for other requests.
|
200 |
-
if ( !empty( $pathinfo ) && !preg_match( '|^.*' . $wp_rewrite->index . '$|', $pathinfo ) ) {
|
201 |
-
$request = $pathinfo;
|
202 |
-
} else {
|
203 |
-
// If the request uri is the index, blank it out so that we don't try to match it against a rule.
|
204 |
-
if ( $req_uri == $wp_rewrite->index )
|
205 |
-
$req_uri = '';
|
206 |
-
$request = $req_uri;
|
207 |
-
}
|
208 |
-
return $request;
|
209 |
-
}
|
210 |
-
|
211 |
-
/**
|
212 |
-
* Add custom rewrite tags
|
213 |
-
*/
|
214 |
-
function add_rewrite_tags() {
|
215 |
-
add_rewrite_tag( '%lesson%', '([^&]+)' );
|
216 |
-
add_rewrite_tag( '%quiz%', '([^&]+)' );
|
217 |
-
add_rewrite_tag( '%question%', '([^&]+)' );
|
218 |
-
add_rewrite_tag( '%user%', '([^/]*)' );
|
219 |
-
add_rewrite_tag( '%course-query-string%', '(.*)' );
|
220 |
-
do_action( 'learn_press_add_rewrite_tags' );
|
221 |
-
}
|
222 |
-
|
223 |
-
/**
|
224 |
-
* Add more custom rewrite rules
|
225 |
-
*/
|
226 |
-
function add_rewrite_rules() {
|
227 |
-
|
228 |
-
$rewrite_prefix = get_option( 'learn_press_permalink_structure' );
|
229 |
-
// lesson
|
230 |
-
$course_type = 'lp_course';
|
231 |
-
$post_types = get_post_types( '', 'objects' );
|
232 |
-
$slug = preg_replace( '!^/!', '', $post_types[$course_type]->rewrite['slug'] );
|
233 |
-
$has_category = false;
|
234 |
-
if ( preg_match( '!(%?course_category%?)!', $slug ) ) {
|
235 |
-
$slug = preg_replace( '!(%?course_category%?)!', '(.+?)/([^/]+)', $slug );
|
236 |
-
$has_category = true;
|
237 |
-
}
|
238 |
-
$current_url = learn_press_get_current_url();
|
239 |
-
$query_string = str_replace( trailingslashit( get_site_url() ), '', $current_url );
|
240 |
-
|
241 |
-
if ( $has_category ) {
|
242 |
-
add_rewrite_rule(
|
243 |
-
'^' . $slug . '(?:/' . $post_types['lp_lesson']->rewrite['slug'] . '/([^/]+))/?$',
|
244 |
-
'index.php?' . $course_type . '=$matches[2]&course_category=$matches[1]&lesson=$matches[3]',
|
245 |
-
'top'
|
246 |
-
);
|
247 |
-
add_rewrite_rule(
|
248 |
-
'^' . $slug . '(?:/' . $post_types['lp_quiz']->rewrite['slug'] . '/([^/]+)/?([^/]+)?)/?$',
|
249 |
-
'index.php?' . $course_type . '=$matches[2]&course_category=$matches[1]&quiz=$matches[3]&question=$matches[4]',
|
250 |
-
'top'
|
251 |
-
);
|
252 |
-
} else {
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
)
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
'
|
262 |
-
|
263 |
-
|
264 |
-
|
265 |
-
|
266 |
-
|
267 |
-
'
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
-
|
277 |
-
|
278 |
-
|
279 |
-
|
280 |
-
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
-
|
295 |
-
|
296 |
-
|
297 |
-
|
298 |
-
|
299 |
-
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
/*add_rewrite_rule(
|
304 |
-
'^' . $slug . '/([^/]*)/(' . $post_types['
|
305 |
-
'index.php?' . $course_type . '=$matches[1]&
|
306 |
-
'top'
|
307 |
-
);*/
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
|
326 |
-
|
327 |
-
|
328 |
-
|
329 |
-
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
-
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
354 |
-
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
383 |
-
|
384 |
-
|
385 |
-
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
|
390 |
-
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
$_REQUEST['
|
395 |
-
$
|
396 |
-
$
|
397 |
-
}
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
-
|
402 |
-
|
403 |
-
|
404 |
-
|
405 |
-
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
|
432 |
-
|
433 |
-
|
434 |
-
|
435 |
-
|
436 |
-
if (
|
437 |
-
|
438 |
-
|
439 |
-
|
440 |
-
|
441 |
-
|
442 |
-
|
443 |
-
|
444 |
-
|
445 |
-
|
446 |
-
|
447 |
-
|
448 |
-
|
449 |
-
|
450 |
-
$
|
451 |
-
|
452 |
-
|
453 |
-
|
454 |
-
|
455 |
-
|
456 |
-
|
457 |
-
|
458 |
-
|
459 |
-
|
460 |
-
|
461 |
-
|
462 |
-
|
463 |
-
|
464 |
-
|
465 |
-
|
466 |
-
}
|
467 |
-
|
468 |
-
public function
|
469 |
-
global $wpdb;
|
470 |
-
|
471 |
-
|
472 |
-
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
|
478 |
-
|
479 |
-
|
480 |
-
|
481 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
482 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
/**
|
4 |
+
* Class LP_Query
|
5 |
+
*/
|
6 |
+
|
7 |
+
defined( 'ABSPATH' ) || exit;
|
8 |
+
|
9 |
+
class LP_Query {
|
10 |
+
/**
|
11 |
+
* @var array
|
12 |
+
*/
|
13 |
+
public $query_vars = array();
|
14 |
+
|
15 |
+
/**
|
16 |
+
* LP_Query constructor.
|
17 |
+
*/
|
18 |
+
public function __construct() {
|
19 |
+
add_action( 'init', array( $this, 'add_rewrite_tags' ), 1000, 0 );
|
20 |
+
add_action( 'init', array( $this, 'add_rewrite_rules' ), 1000, 0 );
|
21 |
+
add_action( 'parse_query', array( $this, 'parse_request' ), 1000, 1 );
|
22 |
+
/**
|
23 |
+
* Add searching post by taxonomies
|
24 |
+
*/
|
25 |
+
add_action( 'pre_get_posts', array( $this, 'query_taxonomy' ) );
|
26 |
+
}
|
27 |
+
|
28 |
+
/**
|
29 |
+
* Parses request params and controls page
|
30 |
+
*
|
31 |
+
* @param WP_Query $q
|
32 |
+
*
|
33 |
+
* @return mixed
|
34 |
+
*/
|
35 |
+
public function parse_request( $q ) {
|
36 |
+
if ( did_action( 'learn_press_parse_query' ) ) {
|
37 |
+
return $q;
|
38 |
+
}
|
39 |
+
$user = learn_press_get_current_user();
|
40 |
+
$request = $this->get_request();
|
41 |
+
if ( !$request || is_admin() ) {
|
42 |
+
return $q;
|
43 |
+
}
|
44 |
+
remove_filter( 'do_parse_request', array( $this, 'get_current_quiz_question' ), 1010, 3 );
|
45 |
+
$course_type = 'lp_course';
|
46 |
+
$post_types = get_post_types( '', 'objects' );
|
47 |
+
|
48 |
+
if ( empty( $post_types[$course_type] ) ) {
|
49 |
+
return;
|
50 |
+
}
|
51 |
+
/********************/
|
52 |
+
if ( empty( $q->query_vars[LP_COURSE_CPT] ) ) {
|
53 |
+
return;
|
54 |
+
}
|
55 |
+
$this->query_vars['course'] = $q->query_vars[LP_COURSE_CPT];
|
56 |
+
$course_id = learn_press_setup_course_data( $this->query_vars['course'] );
|
57 |
+
$quiz_name = '';
|
58 |
+
$question_name = '';
|
59 |
+
$lesson_name = '';
|
60 |
+
if ( !empty( $q->query_vars['quiz'] ) ) {
|
61 |
+
$quiz_name = $this->query_vars['quiz'] = $q->query_vars['quiz'];
|
62 |
+
$this->query_vars['item_type'] = LP_QUIZ_CPT;
|
63 |
+
if ( !empty( $q->query_vars['question'] ) ) {
|
64 |
+
$question_name = $this->query_vars['question'] = $q->query_vars['question'];
|
65 |
+
}
|
66 |
+
} elseif ( !empty( $q->query_vars['lesson'] ) ) {
|
67 |
+
$lesson_name = $this->query_vars['lesson'] = $q->query_vars['lesson'];
|
68 |
+
$this->query_vars['item_type'] = LP_LESSON_CPT;
|
69 |
+
}
|
70 |
+
if ( $quiz_name && $question_name ) {
|
71 |
+
if ( $quiz = learn_press_get_post_by_name( $quiz_name, LP_QUIZ_CPT ) ) {
|
72 |
+
if ( $user->has_quiz_status( 'completed', $quiz->ID, $course_id ) ) {
|
73 |
+
//remove question name from uri
|
74 |
+
$course = learn_press_get_course( $course_id );
|
75 |
+
$redirect = $course->get_item_link( $quiz->ID );// get_site_url() . '/' . dirname( $request_match );
|
76 |
+
wp_redirect( $redirect );
|
77 |
+
exit();
|
78 |
+
}
|
79 |
+
if ( $question = learn_press_get_post_by_name( $question_name, 'lp_question' ) ) {
|
80 |
+
global $wpdb;
|
81 |
+
$query = $wpdb->prepare( "
|
82 |
+
SELECT MAX(user_item_id)
|
83 |
+
FROM {$wpdb->prefix}learnpress_user_items
|
84 |
+
WHERE user_id = %d AND item_id = %d AND item_type = %s and status <> %s
|
85 |
+
", learn_press_get_current_user_id(), $quiz->ID, 'lp_quiz', 'completed' );
|
86 |
+
if ( $history_id = $wpdb->get_var( $query ) ) {
|
87 |
+
learn_press_update_user_item_meta( $history_id, 'current_question', $question->ID );
|
88 |
+
}
|
89 |
+
}
|
90 |
+
}
|
91 |
+
}
|
92 |
+
$this->query_vars['course_id'] = $course_id;
|
93 |
+
do_action_ref_array( 'learn_press_parse_query', array( &$this ) );
|
94 |
+
|
95 |
+
return $q;
|
96 |
+
/************************/
|
97 |
+
$slug = preg_replace( '!^/!', '', $post_types[$course_type]->rewrite['slug'] );
|
98 |
+
|
99 |
+
$match = '^' . $slug . '/([^/]*)/(' . $post_types['lp_quiz']->rewrite['slug'] . ')?/([^/]*)?/?([^/]*)?';
|
100 |
+
|
101 |
+
$request_match = $request;
|
102 |
+
$course_id = 0;
|
103 |
+
if ( !empty( $q->query_vars['post_type'] ) && $q->query_vars['post_type'] == LP_COURSE_CPT ) {
|
104 |
+
if ( !empty( $q->query_vars[LP_COURSE_CPT] ) ) {
|
105 |
+
$this->query_vars['course'] = $q->query_vars[LP_COURSE_CPT];
|
106 |
+
$course_id = learn_press_setup_course_data( $this->query_vars['course'] );
|
107 |
+
}
|
108 |
+
if ( !empty( $q->query_vars['quiz'] ) ) {
|
109 |
+
$this->query_vars['quiz'] = $q->query_vars['quiz'];
|
110 |
+
$this->query_vars['item_type'] = LP_QUIZ_CPT;
|
111 |
+
} elseif ( !empty( $q->query_vars['lesson'] ) ) {
|
112 |
+
$this->query_vars['lesson'] = $q->query_vars['lesson'];
|
113 |
+
$this->query_vars['item_type'] = LP_LESSON_CPT;
|
114 |
+
}
|
115 |
+
}
|
116 |
+
|
117 |
+
/**
|
118 |
+
* Match request URI with quiz permalink
|
119 |
+
*/
|
120 |
+
if ( preg_match( "#^$match#", $request_match, $matches ) || preg_match( "#^$match#", urldecode( $request_match ), $matches ) ) {
|
121 |
+
|
122 |
+
// If request URI is a quiz permalink
|
123 |
+
if ( !empty( $matches[3] ) ) {
|
124 |
+
if ( !$post = learn_press_get_post_by_name( $matches[3], 'lp_quiz', true ) ) {
|
125 |
+
return $q;
|
126 |
+
}
|
127 |
+
// If request URI does not contains a question
|
128 |
+
// Try to get current question of current user and put it into URI
|
129 |
+
if ( empty( $matches[4] ) ) {
|
130 |
+
if ( $user->has_quiz_status( 'started', $post->ID, $course_id ) && $question_id = $user->get_current_quiz_question( $post->ID, $course_id ) ) {
|
131 |
+
$this->query_vars['question'] = $q->query_vars['question'] = get_post_field( 'post_name', $question_id );
|
132 |
+
}
|
133 |
+
} else {
|
134 |
+
// If user is viewing a question then update current question for user
|
135 |
+
$question = learn_press_get_post_by_name( $matches[4], 'lp_question' );
|
136 |
+
/**
|
137 |
+
* If user has completed a quiz but they are accessing to a question inside quiz,
|
138 |
+
* redirect them back to quiz to show results of that quiz instead
|
139 |
+
*/
|
140 |
+
if ( $user->has_quiz_status( 'completed', $post->ID, $course_id ) ) {
|
141 |
+
//remove question name from uri
|
142 |
+
$redirect = get_site_url() . '/' . dirname( $request_match );
|
143 |
+
wp_redirect( $redirect );
|
144 |
+
exit();
|
145 |
+
}
|
146 |
+
if ( $question ) {
|
147 |
+
global $wpdb;
|
148 |
+
$query = $wpdb->prepare( "
|
149 |
+
SELECT MAX(user_item_id)
|
150 |
+
FROM {$wpdb->prefix}learnpress_user_items
|
151 |
+
WHERE user_id = %d AND item_id = %d AND item_type = %s and status <> %s
|
152 |
+
", learn_press_get_current_user_id(), $post->ID, 'lp_quiz', 'completed' );
|
153 |
+
if ( $history_id = $wpdb->get_var( $query ) ) {
|
154 |
+
learn_press_update_user_item_meta( $history_id, 'current_question', $question->ID );
|
155 |
+
}
|
156 |
+
}
|
157 |
+
}
|
158 |
+
}
|
159 |
+
}
|
160 |
+
$this->query_vars['course_id'] = $course_id;
|
161 |
+
do_action_ref_array( 'learn_press_parse_query', array( &$this ) );
|
162 |
+
return $q;
|
163 |
+
}
|
164 |
+
|
165 |
+
/**
|
166 |
+
* This function is cloned from wp core function
|
167 |
+
*
|
168 |
+
* @see WP()->parse_request()
|
169 |
+
*
|
170 |
+
* @return string
|
171 |
+
*/
|
172 |
+
public function get_request() {
|
173 |
+
global $wp_rewrite;
|
174 |
+
$pathinfo = isset( $_SERVER['PATH_INFO'] ) ? $_SERVER['PATH_INFO'] : '';
|
175 |
+
list( $pathinfo ) = explode( '?', $pathinfo );
|
176 |
+
$pathinfo = str_replace( "%", "%25", $pathinfo );
|
177 |
+
|
178 |
+
list( $req_uri ) = explode( '?', $_SERVER['REQUEST_URI'] );
|
179 |
+
$self = $_SERVER['PHP_SELF'];
|
180 |
+
$home_path = trim( parse_url( home_url(), PHP_URL_PATH ), '/' );
|
181 |
+
$home_path_regex = sprintf( '|^%s|i', preg_quote( $home_path, '|' ) );
|
182 |
+
|
183 |
+
// Trim path info from the end and the leading home path from the
|
184 |
+
// front. For path info requests, this leaves us with the requesting
|
185 |
+
// filename, if any. For 404 requests, this leaves us with the
|
186 |
+
// requested permalink.
|
187 |
+
$req_uri = str_replace( $pathinfo, '', $req_uri );
|
188 |
+
$req_uri = trim( $req_uri, '/' );
|
189 |
+
$req_uri = preg_replace( $home_path_regex, '', $req_uri );
|
190 |
+
$req_uri = trim( $req_uri, '/' );
|
191 |
+
$pathinfo = trim( $pathinfo, '/' );
|
192 |
+
$pathinfo = preg_replace( $home_path_regex, '', $pathinfo );
|
193 |
+
$pathinfo = trim( $pathinfo, '/' );
|
194 |
+
$self = trim( $self, '/' );
|
195 |
+
$self = preg_replace( $home_path_regex, '', $self );
|
196 |
+
$self = trim( $self, '/' );
|
197 |
+
|
198 |
+
// The requested permalink is in $pathinfo for path info requests and
|
199 |
+
// $req_uri for other requests.
|
200 |
+
if ( !empty( $pathinfo ) && !preg_match( '|^.*' . $wp_rewrite->index . '$|', $pathinfo ) ) {
|
201 |
+
$request = $pathinfo;
|
202 |
+
} else {
|
203 |
+
// If the request uri is the index, blank it out so that we don't try to match it against a rule.
|
204 |
+
if ( $req_uri == $wp_rewrite->index )
|
205 |
+
$req_uri = '';
|
206 |
+
$request = $req_uri;
|
207 |
+
}
|
208 |
+
return $request;
|
209 |
+
}
|
210 |
+
|
211 |
+
/**
|
212 |
+
* Add custom rewrite tags
|
213 |
+
*/
|
214 |
+
function add_rewrite_tags() {
|
215 |
+
add_rewrite_tag( '%lesson%', '([^&]+)' );
|
216 |
+
add_rewrite_tag( '%quiz%', '([^&]+)' );
|
217 |
+
add_rewrite_tag( '%question%', '([^&]+)' );
|
218 |
+
add_rewrite_tag( '%user%', '([^/]*)' );
|
219 |
+
add_rewrite_tag( '%course-query-string%', '(.*)' );
|
220 |
+
do_action( 'learn_press_add_rewrite_tags' );
|
221 |
+
}
|
222 |
+
|
223 |
+
/**
|
224 |
+
* Add more custom rewrite rules
|
225 |
+
*/
|
226 |
+
function add_rewrite_rules() {
|
227 |
+
|
228 |
+
$rewrite_prefix = get_option( 'learn_press_permalink_structure' );
|
229 |
+
// lesson
|
230 |
+
$course_type = 'lp_course';
|
231 |
+
$post_types = get_post_types( '', 'objects' );
|
232 |
+
$slug = preg_replace( '!^/!', '', $post_types[$course_type]->rewrite['slug'] );
|
233 |
+
$has_category = false;
|
234 |
+
if ( preg_match( '!(%?course_category%?)!', $slug ) ) {
|
235 |
+
$slug = preg_replace( '!(%?course_category%?)!', '(.+?)/([^/]+)', $slug );
|
236 |
+
$has_category = true;
|
237 |
+
}
|
238 |
+
$current_url = learn_press_get_current_url();
|
239 |
+
$query_string = str_replace( trailingslashit( get_site_url() ), '', $current_url );
|
240 |
+
|
241 |
+
if ( $has_category ) {
|
242 |
+
add_rewrite_rule(
|
243 |
+
'^' . $slug . '(?:/' . $post_types['lp_lesson']->rewrite['slug'] . '/([^/]+))/?$',
|
244 |
+
'index.php?' . $course_type . '=$matches[2]&course_category=$matches[1]&lesson=$matches[3]',
|
245 |
+
'top'
|
246 |
+
);
|
247 |
+
add_rewrite_rule(
|
248 |
+
'^' . $slug . '(?:/' . $post_types['lp_quiz']->rewrite['slug'] . '/([^/]+)/?([^/]+)?)/?$',
|
249 |
+
'index.php?' . $course_type . '=$matches[2]&course_category=$matches[1]&quiz=$matches[3]&question=$matches[4]',
|
250 |
+
'top'
|
251 |
+
);
|
252 |
+
} else {
|
253 |
+
|
254 |
+
$custom_slug_lesson= sanitize_title_with_dashes( LP()->settings->get( 'lesson_slug' ) );
|
255 |
+
$custom_slug_quiz = sanitize_title_with_dashes( LP()->settings->get( 'quiz_slug' ) );
|
256 |
+
|
257 |
+
if ( !empty( $custom_slug_lesson ) ) {
|
258 |
+
$post_types['lp_lesson']->rewrite['slug'] = $custom_slug_lesson;
|
259 |
+
}
|
260 |
+
if ( !empty( $custom_slug_quiz ) ) {
|
261 |
+
$post_types['lp_quiz']->rewrite['slug'] = $custom_slug_quiz;
|
262 |
+
}
|
263 |
+
|
264 |
+
add_rewrite_rule(
|
265 |
+
'^' . $slug . '/([^/]+)(?:/' . $post_types['lp_lesson']->rewrite['slug'] . '/([^/]+))/?$',
|
266 |
+
'index.php?' . $course_type . '=$matches[1]&lesson=$matches[2]',
|
267 |
+
'top'
|
268 |
+
);
|
269 |
+
add_rewrite_rule(
|
270 |
+
'^' . $slug . '/([^/]+)(?:/' . $post_types['lp_quiz']->rewrite['slug'] . '/([^/]+)/?([^/]+)?)/?$',
|
271 |
+
'index.php?' . $course_type . '=$matches[1]&quiz=$matches[2]&question=$matches[3]',
|
272 |
+
'top'
|
273 |
+
);
|
274 |
+
}
|
275 |
+
|
276 |
+
if ( $profile_id = learn_press_get_page_id( 'profile' ) ) {
|
277 |
+
add_rewrite_rule(
|
278 |
+
'^' . $rewrite_prefix . get_post_field( 'post_name', $profile_id ) . '/([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?([^/]*)/?',
|
279 |
+
'index.php?page_id=' . $profile_id . '&user=$matches[1]&view=$matches[2]&id=$matches[3]&paged=$matches[4]',
|
280 |
+
'top'
|
281 |
+
);
|
282 |
+
}
|
283 |
+
|
284 |
+
if ( $course_page_id = learn_press_get_page_id( 'courses' ) ) {
|
285 |
+
add_rewrite_rule(
|
286 |
+
'^' . $rewrite_prefix . get_post_field( 'post_name', $course_page_id ) . '/page/([0-9]{1,})/?$',
|
287 |
+
'index.php?pagename=' . get_post_field( 'post_name', $course_page_id ) . '&page=$matches[1]',
|
288 |
+
'top'
|
289 |
+
);
|
290 |
+
/**
|
291 |
+
add_rewrite_rule(
|
292 |
+
'^' . $rewrite_prefix . get_post_field( 'post_name', $course_page_id ) . '/page/([0-9]{1,})/?$',
|
293 |
+
'index.php?page_id=' . $course_page_id . '&paged=$matches[1]',
|
294 |
+
'top'
|
295 |
+
);*/
|
296 |
+
}
|
297 |
+
do_action( 'learn_press_add_rewrite_rules' );
|
298 |
+
return;
|
299 |
+
|
300 |
+
/**
|
301 |
+
* Lesson permalink without category
|
302 |
+
*/
|
303 |
+
/*add_rewrite_rule(
|
304 |
+
'^' . $slug . '/([^/]*)/(' . $post_types['lp_lesson']->rewrite['slug'] . ')/([^/]+)/?$',
|
305 |
+
'index.php?' . $course_type . '=$matches[1]&lesson=$matches[3]',
|
306 |
+
'top'
|
307 |
+
);*/
|
308 |
+
|
309 |
+
/**
|
310 |
+
* Quiz permalink with category inside
|
311 |
+
*/
|
312 |
+
add_rewrite_rule(
|
313 |
+
'^course/(.+?)/([^/]+)(?:/' . $post_types['lp_quiz']->rewrite['slug'] . '/([^/]+))/?$',
|
314 |
+
'index.php?' . $course_type . '=$matches[2]&course_category=$matches[1]&quiz=$matches[3]',
|
315 |
+
'top'
|
316 |
+
);
|
317 |
+
|
318 |
+
/**
|
319 |
+
* Lesson permalink without category
|
320 |
+
*/
|
321 |
+
add_rewrite_rule(
|
322 |
+
'^' . $slug . '/([^/]*)/(' . $post_types['lp_quiz']->rewrite['slug'] . ')/([^/]+)/?$',
|
323 |
+
'index.php?' . $course_type . '=$matches[1]&quiz=$matches[3]',
|
324 |
+
'top'
|
325 |
+
);
|
326 |
+
|
327 |
+
|
328 |
+
/*add_rewrite_rule(
|
329 |
+
'^' . $slug . '/([^/]*)/(' . $post_types['lp_quiz']->rewrite['slug'] . ')?/([^/]*)?/?([^/]*)?',
|
330 |
+
'index.php?' . $course_type . '=$matches[1]&quiz=$matches[3]&question=$matches[4]',
|
331 |
+
'top'
|
332 |
+
);*/
|
333 |
+
|
334 |
+
|
335 |
+
}
|
336 |
+
|
337 |
+
/**
|
338 |
+
* @param $query
|
339 |
+
*
|
340 |
+
* @return array
|
341 |
+
*/
|
342 |
+
function parse_course_request( $query ) {
|
343 |
+
$return = array();
|
344 |
+
if ( !empty( $query ) ) {
|
345 |
+
$segments = explode( '/', $query );
|
346 |
+
$segments = array_filter( $segments );
|
347 |
+
if ( $segments ) {
|
348 |
+
$ids = array();
|
349 |
+
$names = array();
|
350 |
+
foreach ( $segments as $segment ) {
|
351 |
+
if ( preg_match( '/^([0-9]+)/', $segment ) ) {
|
352 |
+
$post_args = explode( '-', $segment, 2 );
|
353 |
+
$ids[] = absint( $post_args[0] );
|
354 |
+
$names[] = $post_args[1];
|
355 |
+
}
|
356 |
+
}
|
357 |
+
|
358 |
+
if ( sizeof( $ids ) ) {
|
359 |
+
global $wpdb;
|
360 |
+
$ids_format = array_fill( 0, sizeof( $ids ), '%d' );
|
361 |
+
$names_format = array_fill( 0, sizeof( $names ), '%s' );
|
362 |
+
|
363 |
+
$query = $wpdb->prepare( "
|
364 |
+
SELECT ID, post_name, post_type
|
365 |
+
FROM {$wpdb->posts}
|
366 |
+
WHERE ID IN(" . join( ',', $ids_format ) . ")
|
367 |
+
AND post_name IN(" . join( ',', $names_format ) . ")
|
368 |
+
ORDER BY FIELD(ID, " . join( ',', $ids_format ) . ")
|
369 |
+
", array_merge( $ids, $names, $ids ) );
|
370 |
+
if ( $items = $wpdb->get_results( $query ) ) {
|
371 |
+
$support_types = learn_press_course_get_support_item_types();
|
372 |
+
foreach ( $items as $item ) {
|
373 |
+
if ( array_key_exists( $item->post_type, $support_types ) ) {
|
374 |
+
$return[] = $item;
|
375 |
+
}
|
376 |
+
}
|
377 |
+
}
|
378 |
+
}
|
379 |
+
}
|
380 |
+
}
|
381 |
+
return $return;
|
382 |
+
}
|
383 |
+
|
384 |
+
/**
|
385 |
+
* This function parse query vars and put into request
|
386 |
+
*/
|
387 |
+
function parse_query_vars_to_request() {
|
388 |
+
global $wp_query, $wp;
|
389 |
+
if ( isset( $wp_query->query['user'] ) ) {
|
390 |
+
/*if ( !get_option( 'permalink_structure' ) ) {
|
391 |
+
$wp_query->query_vars['user'] = !empty( $_REQUEST['user'] ) ? $_REQUEST['user'] : null;
|
392 |
+
$wp_query->query_vars['tab'] = !empty( $_REQUEST['tab'] ) ? $_REQUEST['tab'] : null;
|
393 |
+
$wp_query->query_vars['order_id'] = !empty( $_REQUEST['order_id'] ) ? $_REQUEST['order_id'] : null;
|
394 |
+
$wp_query->query['user'] = !empty( $_REQUEST['user'] ) ? $_REQUEST['user'] : null;
|
395 |
+
$wp_query->query['tab'] = !empty( $_REQUEST['tab'] ) ? $_REQUEST['tab'] : null;
|
396 |
+
$wp_query->query['order_id'] = !empty( $_REQUEST['order_id'] ) ? $_REQUEST['order_id'] : null;
|
397 |
+
} else {
|
398 |
+
list( $username, $tab, $id ) = explode( '/', $wp_query->query['user'] );
|
399 |
+
$wp_query->query_vars['user'] = $username;
|
400 |
+
$wp_query->query_vars['tab'] = $tab;
|
401 |
+
$wp_query->query_vars['order_id'] = $id;
|
402 |
+
$wp_query->query['user'] = $username;
|
403 |
+
$wp_query->query['tab'] = $tab;
|
404 |
+
$wp_query->query['order_id'] = $id;
|
405 |
+
}*/
|
406 |
+
}
|
407 |
+
global $wpdb;
|
408 |
+
// if lesson name is passed, find it's ID and put into request
|
409 |
+
/*if ( !empty( $wp_query->query_vars['lesson'] ) ) {
|
410 |
+
if ( $lesson_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_name = %s AND post_type = %s", $wp_query->query_vars['lesson'], LP_LESSON_CPT ) ) ) {
|
411 |
+
$_REQUEST['lesson'] = $lesson_id;
|
412 |
+
$_GET['lesson'] = $lesson_id;
|
413 |
+
$_POST['lesson'] = $lesson_id;
|
414 |
+
}
|
415 |
+
}*/
|
416 |
+
// if question name is passed, find it's ID and put into request
|
417 |
+
/*if ( !empty( $wp_query->query_vars['question'] ) ) {
|
418 |
+
if ( $question_id = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM {$wpdb->posts} WHERE post_name = %s AND post_type = %s", $wp_query->query_vars['question'], LP_QUESTION_CPT ) ) ) {
|
419 |
+
$_REQUEST['question'] = $question_id;
|
420 |
+
$_GET['question'] = $question_id;
|
421 |
+
$_POST['question'] = $question_id;
|
422 |
+
}
|
423 |
+
}*/
|
424 |
+
|
425 |
+
}
|
426 |
+
|
427 |
+
/**
|
428 |
+
* Get current course user accessing
|
429 |
+
*
|
430 |
+
* @param string $return
|
431 |
+
*
|
432 |
+
* @return bool|false|int|LP_Course|mixed
|
433 |
+
*/
|
434 |
+
public function get_course( $return = 'id' ) {
|
435 |
+
$course = false;
|
436 |
+
if ( learn_press_is_course() ) {
|
437 |
+
$course = get_the_ID();
|
438 |
+
}
|
439 |
+
if ( $course && $return == 'object' ) {
|
440 |
+
$course = learn_press_get_course( $course );
|
441 |
+
}
|
442 |
+
return $course;
|
443 |
+
}
|
444 |
+
|
445 |
+
public function get_course_item( $return = 'id' ) {
|
446 |
+
$course = $this->get_course( 'object' );
|
447 |
+
$user = learn_press_get_current_user();
|
448 |
+
$item = isset( $item ) ? $item : LP()->global['course-item'];
|
449 |
+
if ( $item && $return == 'object' ) {
|
450 |
+
$item = LP_Course::get_item( $item );
|
451 |
+
}
|
452 |
+
return $item;
|
453 |
+
}
|
454 |
+
|
455 |
+
|
456 |
+
public function query_taxonomy( $q ) {
|
457 |
+
// We only want to affect the main query
|
458 |
+
if ( !$q->is_main_query() ) {
|
459 |
+
return;
|
460 |
+
}
|
461 |
+
if ( is_search() ) {
|
462 |
+
add_filter( 'posts_where', array( $this, 'add_tax_search' ) );
|
463 |
+
add_filter( 'posts_join', array( $this, 'join_term' ) );
|
464 |
+
add_filter( 'posts_groupby', array( $this, 'tax_groupby' ) );
|
465 |
+
}
|
466 |
+
}
|
467 |
+
|
468 |
+
public function join_term( $join ) {
|
469 |
+
global $wp_query, $wpdb;
|
470 |
+
|
471 |
+
if ( !empty( $wp_query->query_vars['s'] ) && !is_admin() ) {
|
472 |
+
if ( !preg_match( '/' . $wpdb->term_relationships . '/', $join ) ) {
|
473 |
+
$join .= "LEFT JOIN $wpdb->term_relationships ON $wpdb->posts.ID = $wpdb->term_relationships.object_id ";
|
474 |
+
}
|
475 |
+
$join .= "LEFT JOIN $wpdb->term_taxonomy ON $wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id ";
|
476 |
+
$join .= "LEFT JOIN $wpdb->terms ON $wpdb->term_taxonomy.term_id = $wpdb->terms.term_id ";
|
477 |
+
}
|
478 |
+
|
479 |
+
return $join;
|
480 |
+
}
|
481 |
+
|
482 |
+
public function add_tax_search( $where ) {
|
483 |
+
global $wp_query, $wpdb;
|
484 |
+
|
485 |
+
if ( !empty( $wp_query->query_vars['s'] ) && !is_admin() ) {
|
486 |
+
$escaped_s = esc_sql( $wp_query->query_vars['s'] );
|
487 |
+
$where .= "OR $wpdb->terms.name LIKE '%{$escaped_s}%'";
|
488 |
+
}
|
489 |
+
|
490 |
+
return $where;
|
491 |
+
}
|
492 |
+
|
493 |
+
public function tax_groupby( $groupby ) {
|
494 |
+
global $wpdb;
|
495 |
+
$groupby = "{$wpdb->posts}.ID";
|
496 |
+
|
497 |
+
$this->remove_query_tax();
|
498 |
+
|
499 |
+
return $groupby;
|
500 |
+
}
|
501 |
+
|
502 |
+
public function remove_query_tax() {
|
503 |
+
remove_filter( 'posts_where', 'learn_press_add_tax_search' );
|
504 |
+
remove_filter( 'posts_join', 'learn_press_join_term' );
|
505 |
+
remove_filter( 'posts_groupby', 'learn_press_tax_groupby' );
|
506 |
+
}
|
507 |
}
|
inc/course/abstract-lp-course.php
CHANGED
@@ -1,1514 +1,1528 @@
|
|
1 |
-
<?php
|
2 |
-
|
3 |
-
defined( 'ABSPATH' ) || exit();
|
4 |
-
|
5 |
-
/**
|
6 |
-
* Class LP_Abstract_Course
|
7 |
-
*/
|
8 |
-
abstract class LP_Abstract_Course {
|
9 |
-
/**
|
10 |
-
* The course (post) ID.
|
11 |
-
*
|
12 |
-
* @var int
|
13 |
-
*/
|
14 |
-
public $id = 0;
|
15 |
-
|
16 |
-
/**
|
17 |
-
* $post Stores post data
|
18 |
-
*
|
19 |
-
* @var $post WP_Post
|
20 |
-
*/
|
21 |
-
public $post = null;
|
22 |
-
|
23 |
-
/**
|
24 |
-
*
|
25 |
-
* @var string
|
26 |
-
*/
|
27 |
-
public $course_type = null;
|
28 |
-
|
29 |
-
/**
|
30 |
-
* Course curriculum
|
31 |
-
*
|
32 |
-
* @var array
|
33 |
-
*/
|
34 |
-
protected static $_curriculum = array();
|
35 |
-
|
36 |
-
/**
|
37 |
-
* @var null
|
38 |
-
*/
|
39 |
-
protected $_count_users = null;
|
40 |
-
|
41 |
-
/**
|
42 |
-
* @var null
|
43 |
-
*/
|
44 |
-
protected $_students_list = null;
|
45 |
-
|
46 |
-
/**
|
47 |
-
* @var array
|
48 |
-
*/
|
49 |
-
protected static $_lessons = array();
|
50 |
-
|
51 |
-
/**
|
52 |
-
* Constructor gets the post object and sets the ID for the loaded course.
|
53 |
-
*
|
54 |
-
* @param int|LP_Course|object $course Course ID, post object, or course object
|
55 |
-
* @param int $user
|
56 |
-
*/
|
57 |
-
public function __construct( $course, $user = 0 ) {
|
58 |
-
if ( is_numeric( $course ) ) {
|
59 |
-
$this->id = absint( $course );
|
60 |
-
$this->post = get_post( $this->id );
|
61 |
-
} elseif ( $course instanceof LP_Course ) {
|
62 |
-
$this->id = absint( $course->id );
|
63 |
-
$this->post = $course->post;
|
64 |
-
} elseif ( isset( $course->ID ) ) {
|
65 |
-
$this->id = absint( $course->ID );
|
66 |
-
$this->post = get_post( $course->ID );
|
67 |
-
}
|
68 |
-
if ( empty( self::$_lessons[$this->id] ) ) {
|
69 |
-
self::$_lessons[$this->id] = array();
|
70 |
-
}
|
71 |
-
if ( $user ) {
|
72 |
-
$this->init_for_user( $user );
|
73 |
-
}
|
74 |
-
}
|
75 |
-
|
76 |
-
public function init_for_user() {
|
77 |
-
|
78 |
-
}
|
79 |
-
|
80 |
-
/**
|
81 |
-
* __isset function.
|
82 |
-
*
|
83 |
-
* @param mixed $key
|
84 |
-
*
|
85 |
-
* @return bool
|
86 |
-
*/
|
87 |
-
public function __isset( $key ) {
|
88 |
-
return metadata_exists( 'post', $this->id, '_' . $key );
|
89 |
-
}
|
90 |
-
|
91 |
-
/**
|
92 |
-
* __get function.
|
93 |
-
*
|
94 |
-
* @param string $key
|
95 |
-
*
|
96 |
-
* @return mixed
|
97 |
-
*/
|
98 |
-
public function __get( $key ) {
|
99 |
-
if ( strcasecmp( $key, 'ID' ) == 0 ) {
|
100 |
-
$key = strtolower( $key );
|
101 |
-
}
|
102 |
-
if ( empty( $this->{$key} ) ) {
|
103 |
-
$value = false;
|
104 |
-
switch ( $key ) {
|
105 |
-
case 'current_item':
|
106 |
-
if ( !empty( LP()->global['course-item'] ) ) {
|
107 |
-
$value = LP()->global['course-item'];
|
108 |
-
}
|
109 |
-
|
110 |
-
break;
|
111 |
-
case 'current_lesson':
|
112 |
-
$lesson_id = ( ( $lesson_id = learn_press_get_request( "lesson_id" ) ) && $this->has( 'item', $lesson_id ) ) ? $lesson_id : null;
|
113 |
-
if ( $lesson_id ) {
|
114 |
-
$value = LP_Lesson::get_lesson( $lesson_id );
|
115 |
-
}
|
116 |
-
break;
|
117 |
-
case 'permalink':
|
118 |
-
$value = get_the_permalink( $this->id );
|
119 |
-
break;
|
120 |
-
case 'duration':
|
121 |
-
$value = get_post_meta( $this->id, '_lp_' . $key, true );
|
122 |
-
$duration = learn_press_get_course_duration_support();
|
123 |
-
$duration_keys = array_keys( $duration );
|
124 |
-
if ( !preg_match_all( '!([0-9]+)\s(' . join( '|', $duration_keys ) . ')!', $value, $matches ) ) {
|
125 |
-
$a1 = absint( $value );
|
126 |
-
$a2 = end( $duration_keys );
|
127 |
-
$value = $a1 . ' ' . $a2;
|
128 |
-
update_post_meta( $this->id, '_lp_' . $key, $value );
|
129 |
-
}
|
130 |
-
break;
|
131 |
-
default: // default is get course meta key
|
132 |
-
if ( func_num_args() > 1 ) {
|
133 |
-
$single = func_get_arg( 1 );
|
134 |
-
if ( $single !== false && $single !== true ) {
|
135 |
-
$single = true;
|
136 |
-
}
|
137 |
-
} else {
|
138 |
-
$single = true;
|
139 |
-
}
|
140 |
-
$value = get_post_meta( $this->id, '_lp_' . $key, $single );
|
141 |
-
if ( ( $key == 'price' || $key == 'total' ) && get_post_meta( $this->id, '_lp_payment', true ) != 'yes' ) {
|
142 |
-
$value = 0;
|
143 |
-
}
|
144 |
-
|
145 |
-
}
|
146 |
-
if ( !empty( $value ) ) {
|
147 |
-
$this->$key = $value;
|
148 |
-
}
|
149 |
-
}
|
150 |
-
return !empty( $this->$key ) ? $this->$key : null;
|
151 |
-
}
|
152 |
-
|
153 |
-
/**
|
154 |
-
* Get course thumbnail, return placeholder if it does not exists
|
155 |
-
*
|
156 |
-
* @param string $size
|
157 |
-
* @param array $attr
|
158 |
-
*
|
159 |
-
* @return mixed|null|void
|
160 |
-
*/
|
161 |
-
public function get_image( $size = 'course_thumbnail', $attr = array() ) {
|
162 |
-
$attr = wp_parse_args(
|
163 |
-
$attr,
|
164 |
-
array(
|
165 |
-
'alt' => $this->get_title()
|
166 |
-
)
|
167 |
-
);
|
168 |
-
$image = false;
|
169 |
-
if ( has_post_thumbnail( $this->id ) ) {
|
170 |
-
$image = get_the_post_thumbnail( $this->id, $size, $attr );
|
171 |
-
} elseif ( ( $parent_id = wp_get_post_parent_id( $this->id ) ) && has_post_thumbnail( $parent_id ) ) {
|
172 |
-
$image = get_the_post_thumbnail( $parent_id, $size, $attr );
|
173 |
-
}
|
174 |
-
if ( !$image ) {
|
175 |
-
if ( 'course_thumbnail' == $size ) {
|
176 |
-
$image = LP()->image( 'placeholder-400x250' );
|
177 |
-
} else {
|
178 |
-
$image = LP()->image( 'placeholder-800x450' );
|
179 |
-
}
|
180 |
-
$image = sprintf( '<img src="%s" %s />', $image, '' );
|
181 |
-
}
|
182 |
-
return apply_filters( 'learn_press_course_image', $image, $this->id, $size, $attr );
|
183 |
-
}
|
184 |
-
|
185 |
-
public function get_permalink() {
|
186 |
-
return $this->permalink;
|
187 |
-
}
|
188 |
-
|
189 |
-
public function is_visible() {
|
190 |
-
return true;
|
191 |
-
}
|
192 |
-
|
193 |
-
public function get_request_item( $field = 'id' ) {
|
194 |
-
$return = LP()->global['course-item'];
|
195 |
-
if ( !empty( $_REQUEST['course-item'] ) ) {
|
196 |
-
$type = $_REQUEST['course-item'];
|
197 |
-
if ( $field == 'type' ) {
|
198 |
-
$return = $type;
|
199 |
-
} elseif ( $field == 'id' ) {
|
200 |
-
$return = !empty( $_REQUEST[$type . '_id'] ) ? $_REQUEST[$type . '_id'] : 0;
|
201 |
-
} elseif ( $field == 'name' ) {
|
202 |
-
$return = !empty( $_REQUEST[$type] ) ? $_REQUEST[$type] : false;
|
203 |
-
}
|
204 |
-
}
|
205 |
-
return $return;
|
206 |
-
}
|
207 |
-
|
208 |
-
/**
|
209 |
-
* Get the course's post data.
|
210 |
-
*
|
211 |
-
* @return object
|
212 |
-
*/
|
213 |
-
public function get_course_data() {
|
214 |
-
return $this->post;
|
215 |
-
}
|
216 |
-
|
217 |
-
/**
|
218 |
-
*
|
219 |
-
* @return mixed
|
220 |
-
*/
|
221 |
-
public function is_enrollable() {
|
222 |
-
$enrollable = true;
|
223 |
-
|
224 |
-
// Products must exist of course
|
225 |
-
if ( !$this->exists() ) {
|
226 |
-
$enrollable = false;
|
227 |
-
// Check the product is published
|
228 |
-
} elseif ( $this->post->post_status !== 'publish' && !current_user_can( 'edit_post', $this->id ) ) {
|
229 |
-
$enrollable = false;
|
230 |
-
}
|
231 |
-
|
232 |
-
return apply_filters( 'learn_press_is_enrollable', $enrollable, $this );
|
233 |
-
}
|
234 |
-
|
235 |
-
/**
|
236 |
-
* Course is exists if the post is not empty
|
237 |
-
*
|
238 |
-
* @return bool
|
239 |
-
*/
|
240 |
-
public function exists() {
|
241 |
-
return empty( $this->post ) ? false : true;
|
242 |
-
}
|
243 |
-
|
244 |
-
/**
|
245 |
-
* The course is require enrollment or not
|
246 |
-
*
|
247 |
-
* @return bool
|
248 |
-
*/
|
249 |
-
public function is_require_enrollment() {
|
250 |
-
return $this->is_required_enroll();
|
251 |
-
}
|
252 |
-
|
253 |
-
/**
|
254 |
-
* Check if this course is required to enroll
|
255 |
-
*
|
256 |
-
* @param mixed
|
257 |
-
*
|
258 |
-
* @return bool
|
259 |
-
*/
|
260 |
-
public function is_required_enroll() {
|
261 |
-
|
262 |
-
if ( func_get_args() ) {
|
263 |
-
$required = $this->required_enroll == func_get_arg( 0 );
|
264 |
-
} else {
|
265 |
-
$required = $this->required_enroll !== 'no';
|
266 |
-
}
|
267 |
-
$required = $required || ( $this->payment == 'yes' );
|
268 |
-
|
269 |
-
return apply_filters( 'learn_press_course_required_enroll', $required, $this );
|
270 |
-
}
|
271 |
-
|
272 |
-
private function _get_posts_by_id( $ids ) {
|
273 |
-
global $wpdb;
|
274 |
-
settype( $ids, 'array' );
|
275 |
-
$posts = $wpdb->get_results( "
|
276 |
-
SELECT *
|
277 |
-
FROM {$wpdb->posts}
|
278 |
-
WHERE ID IN(" . join( ',', $ids ) . ")
|
279 |
-
" );
|
280 |
-
return $posts;
|
281 |
-
}
|
282 |
-
|
283 |
-
public function get_title() {
|
284 |
-
return apply_filters( 'learn_press_course_title', $this->post ? $this->post->post_title : '', $this );
|
285 |
-
}
|
286 |
-
|
287 |
-
public function get_description() {
|
288 |
-
return apply_filters( 'the_content', $this->post->post_content );
|
289 |
-
}
|
290 |
-
|
291 |
-
/**
|
292 |
-
* Get all curriculum of this course
|
293 |
-
*
|
294 |
-
* @param int $section_id
|
295 |
-
* @param bool $force
|
296 |
-
*
|
297 |
-
* @return mixed
|
298 |
-
*/
|
299 |
-
public function get_curriculum( $section_id = 0, $force = false ) {
|
300 |
-
if ( !$this->id ) {
|
301 |
-
return false;
|
302 |
-
}
|
303 |
-
if ( false ) {
|
304 |
-
$curriculum = LP_Cache::get_course_curriculum( false, array() );
|
305 |
-
|
306 |
-
if ( !array_key_exists( $this->id, $curriculum ) || $force ) {
|
307 |
-
global $wpdb;
|
308 |
-
|
309 |
-
$curriculum[$this->id] = array();
|
310 |
-
$query = $wpdb->prepare( "
|
311 |
-
SELECT cc.*
|
312 |
-
FROM {$wpdb->posts} p
|
313 |
-
INNER JOIN {$wpdb->learnpress_sections} cc ON p.ID = cc.section_course_id
|
314 |
-
WHERE p.ID = %d
|
315 |
-
ORDER BY `section_order` ASC
|
316 |
-
", $this->id );
|
317 |
-
if ( $rows = $wpdb->get_results( $query, OBJECT_K ) ) {
|
318 |
-
$section_ids = array_keys( $rows );
|
319 |
-
$how_many = count( $section_ids );
|
320 |
-
$placeholders = array_fill( 0, $how_many, '%d' );
|
321 |
-
$in = implode( ', ', $placeholders );
|
322 |
-
|
323 |
-
$query = $wpdb->prepare( "
|
324 |
-
SELECT si.*, p.*
|
325 |
-
FROM {$wpdb->posts} p
|
326 |
-
INNER JOIN {$wpdb->prefix}learnpress_section_items si ON si.item_id = p.ID
|
327 |
-
INNER JOIN {$wpdb->prefix}learnpress_sections s ON s.section_id = si.section_id
|
328 |
-
WHERE s.section_id IN( $in )
|
329 |
-
ORDER BY s.section_order, si.item_order ASC
|
330 |
-
", $section_ids );
|
331 |
-
$section_items = $wpdb->get_results( $query );
|
332 |
-
$post_ids = array();
|
333 |
-
foreach ( $rows as $row ) {
|
334 |
-
$section = $row;
|
335 |
-
$section->items = array();
|
336 |
-
if ( $section_items ) {
|
337 |
-
$count = 0;
|
338 |
-
foreach ( $section_items as $item ) {
|
339 |
-
if ( $item->section_id == $row->section_id ) {
|
340 |
-
$section->items[] = $item;
|
341 |
-
/**
|
342 |
-
* Add item to 'posts' cache group
|
343 |
-
*/
|
344 |
-
$item_post = wp_cache_get( $item->ID, 'posts' );
|
345 |
-
if ( !$item_post ) {
|
346 |
-
wp_cache_add( $item->ID, $item, 'posts' );
|
347 |
-
}
|
348 |
-
$post_ids[] = $item->ID;
|
349 |
-
$count ++;
|
350 |
-
} else {
|
351 |
-
if ( $count ) break;
|
352 |
-
}
|
353 |
-
}
|
354 |
-
}
|
355 |
-
$curriculum[$this->id][$section->section_id] = $section;
|
356 |
-
}
|
357 |
-
// update all meta data into cache
|
358 |
-
update_meta_cache( 'post', $post_ids );
|
359 |
-
//SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN
|
360 |
-
}
|
361 |
-
}
|
362 |
-
LP_Cache::set_course_curriculum( $curriculum );
|
363 |
-
$return = false;
|
364 |
-
if ( $section_id ) {
|
365 |
-
if ( !empty( $curriculum[$this->id][$section_id] ) ) {
|
366 |
-
$return = $curriculum[$this->id][$section_id];
|
367 |
-
}
|
368 |
-
} else {
|
369 |
-
$return = $curriculum[$this->id];
|
370 |
-
}
|
371 |
-
} // end if(false)
|
372 |
-
else {
|
373 |
-
$curriculum = _learn_press_get_course_curriculum( $this->id, $force );
|
374 |
-
$return = false;
|
375 |
-
if ( $section_id ) {
|
376 |
-
if ( !empty( $curriculum[$section_id] ) ) {
|
377 |
-
$return = $curriculum[$section_id];
|
378 |
-
}
|
379 |
-
} else {
|
380 |
-
$return = $curriculum;
|
381 |
-
}
|
382 |
-
}
|
383 |
-
return apply_filters( 'learn_press_course_curriculum', $return, $this->id, $section_id );
|
384 |
-
}
|
385 |
-
|
386 |
-
/**
|
387 |
-
* Count the total of students has enrolled course
|
388 |
-
*
|
389 |
-
* @param string (null|append|swaps)
|
390 |
-
*
|
391 |
-
* @return mixed
|
392 |
-
*/
|
393 |
-
public function count_users_enrolled( $count_db = '' ) {
|
394 |
-
|
395 |
-
// Get students enrolled from settings of the course that owns course want to show
|
396 |
-
// So, if this value is set that means the result is fake ... :)
|
397 |
-
$enrolled = $this->students;
|
398 |
-
|
399 |
-
|
400 |
-
// But, if it is not set then we count the real value from DB
|
401 |
-
if ( $count_db ) {
|
402 |
-
$real_enrolled = $this->get_users_enrolled();
|
403 |
-
if ( $count_db == 'append' ) {
|
404 |
-
$enrolled += $real_enrolled;
|
405 |
-
} elseif ( $count_db == 'swaps' && $real_enrolled ) {
|
406 |
-
$enrolled = $real_enrolled;
|
407 |
-
}
|
408 |
-
}
|
409 |
-
return apply_filters( 'learn_press_count_users_enrolled', $enrolled, $this );
|
410 |
-
}
|
411 |
-
|
412 |
-
/**
|
413 |
-
* Count the real users has enrolled
|
414 |
-
*
|
415 |
-
* @param bool $force
|
416 |
-
*
|
417 |
-
* @return int
|
418 |
-
*/
|
419 |
-
public function get_users_enrolled( $force = false ) {
|
420 |
-
|
421 |
-
global $wpdb;
|
422 |
-
if ( $this->_count_users === null || $force ) {
|
423 |
-
$query = $wpdb->prepare( "
|
424 |
-
SELECT count(o.ID)
|
425 |
-
FROM {$wpdb->posts} o
|
426 |
-
INNER JOIN {$wpdb->learnpress_order_items} oi ON oi.order_id = o.ID
|
427 |
-
INNER JOIN {$wpdb->learnpress_order_itemmeta} oim ON oim.learnpress_order_item_id = oi.order_item_id
|
428 |
-
AND oim.meta_key = %s AND oim.meta_value = %d
|
429 |
-
WHERE o.post_status = %s
|
430 |
-
", '_course_id', $this->id, 'lp-completed' );
|
431 |
-
$this->_count_users = $wpdb->get_var( $query );
|
432 |
-
}
|
433 |
-
return $this->_count_users;
|
434 |
-
}
|
435 |
-
|
436 |
-
/**
|
437 |
-
* Output html for students enrolled counter
|
438 |
-
*
|
439 |
-
* @param int Optional - user ID
|
440 |
-
*
|
441 |
-
* @return string
|
442 |
-
*/
|
443 |
-
public function get_students_html( $user_id = null ) {
|
444 |
-
$output = '';
|
445 |
-
if ( $count = $this->count_users_enrolled( 'append' ) ):
|
446 |
-
$course_info = $this->get_course_info( $user_id );
|
447 |
-
if ( $course_info['status'] ):
|
448 |
-
if ( $count == 1 ):
|
449 |
-
$output .= __( 'You enrolled', 'learnpress' );
|
450 |
-
else:
|
451 |
-
$output .= sprintf( _nx( 'You and one student enrolled', 'You and <span class="course-students-number">%1$s</span> students enrolled', intval( $count - 1 ), '', 'learnpress' ), $count - 1 );
|
452 |
-
endif;
|
453 |
-
$output = apply_filters( 'learn_press_students_enrolled_html', $output, $this );
|
454 |
-
else:
|
455 |
-
$output = sprintf( _nx( 'One student enrolled', '<span class="course-students-number">%1$s</span> students enrolled', $count, '', 'learnpress' ), $count );
|
456 |
-
$output = apply_filters( 'learn_press_one_student_enrolled_html', $output, $this );
|
457 |
-
endif;
|
458 |
-
else:
|
459 |
-
$output = apply_filters( 'learn_press_no_student_enrolled_html', __( 'No student enrolled', 'learnpress' ), $this );
|
460 |
-
endif;
|
461 |
-
return $output;
|
462 |
-
}
|
463 |
-
|
464 |
-
public function get_instructor() {
|
465 |
-
$user_data = get_userdata( $this->post->post_author );
|
466 |
-
$author_name = '';
|
467 |
-
if ( $user_data ) {
|
468 |
-
$author_name = $user_data->display_name;
|
469 |
-
}
|
470 |
-
return apply_filters( 'learn_press_course_instructor', $author_name, $this->id );
|
471 |
-
}
|
472 |
-
|
473 |
-
public function get_instructor_html() {
|
474 |
-
$instructor = $this->get_instructor();
|
475 |
-
$html = sprintf(
|
476 |
-
'<a href="%s">%s</a>',
|
477 |
-
learn_press_user_profile_link( $this->post->post_author ),
|
478 |
-
$instructor
|
479 |
-
);
|
480 |
-
return apply_filters( 'learn_press_course_instructor_html', $html, $this->post->post_author, $this->id );
|
481 |
-
}
|
482 |
-
|
483 |
-
public function get_course_info( $user_id = null ) {
|
484 |
-
if ( !$user_id ) {
|
485 |
-
$user_id = get_current_user_id();
|
486 |
-
}
|
487 |
-
$user = learn_press_get_user( $user_id );
|
488 |
-
return $user->get_course_info( $this->id );
|
489 |
-
}
|
490 |
-
|
491 |
-
/**
|
492 |
-
* Check if a course is FREE or need to pay or enroll
|
493 |
-
*
|
494 |
-
* @return bool
|
495 |
-
*/
|
496 |
-
public function is_free() {
|
497 |
-
$is_free = ( 'no' == $this->payment || ( 0 >= $this->get_price() ) );
|
498 |
-
return apply_filters( 'learn_press_is_free_course', $is_free, $this );
|
499 |
-
}
|
500 |
-
|
501 |
-
/**
|
502 |
-
* Get the origin price of course
|
503 |
-
* @return mixed
|
504 |
-
*/
|
505 |
-
public function get_origin_price() {
|
506 |
-
$price = $this->price;
|
507 |
-
if ( !$price || 'yes' != $this->payment ) {
|
508 |
-
$price = 0;
|
509 |
-
} else {
|
510 |
-
$price = floatval( $price );
|
511 |
-
}
|
512 |
-
return $price;
|
513 |
-
}
|
514 |
-
|
515 |
-
/**
|
516 |
-
* Get the sale price of course
|
517 |
-
* @return mixed
|
518 |
-
*/
|
519 |
-
public function get_sale_price() {
|
520 |
-
$res = null;
|
521 |
-
$sale_price = get_post_meta( $this->id, '_lp_sale_price', true );
|
522 |
-
if ( 'yes' == $this->payment && is_numeric( $sale_price ) ) {
|
523 |
-
$sale_price = floatval( $sale_price );
|
524 |
-
$start_date = get_post_meta( $this->id, '_lp_sale_start', true );
|
525 |
-
$end_date = get_post_meta( $this->id, '_lp_sale_end', true );
|
526 |
-
$now = current_time( 'timestamp' );
|
527 |
-
$end = strtotime( $end_date );
|
528 |
-
$start = strtotime( $start_date );
|
529 |
-
if ( ( $now >= $start || !$start_date ) && ( $now <= $end || !$end_date ) && $sale_price ) {
|
530 |
-
$res = $sale_price;
|
531 |
-
}
|
532 |
-
}
|
533 |
-
return $res;
|
534 |
-
}
|
535 |
-
|
536 |
-
/**
|
537 |
-
* Get the price of course
|
538 |
-
*
|
539 |
-
* @return mixed
|
540 |
-
*/
|
541 |
-
public function get_price() {
|
542 |
-
$price = $this->price;
|
543 |
-
if ( !$price || 'yes' != $this->payment ) {
|
544 |
-
$price = 0;
|
545 |
-
} else {
|
546 |
-
$price = floatval( $price );
|
547 |
-
$sale_price = $this->get_sale_price();
|
548 |
-
if ( is_numeric( $sale_price ) ) {
|
549 |
-
$price = $sale_price;
|
550 |
-
}
|
551 |
-
}
|
552 |
-
return apply_filters( 'learn_press_course_price', $price, $this );
|
553 |
-
}
|
554 |
-
|
555 |
-
/**
|
556 |
-
* Get the price of course with html
|
557 |
-
*
|
558 |
-
* @return mixed
|
559 |
-
*/
|
560 |
-
public function get_price_html() {
|
561 |
-
|
562 |
-
if ( $this->is_free() ) {
|
563 |
-
$price_html = apply_filters( 'learn_press_course_price_html_free', __( 'Free', 'learnpress' ), $this );
|
564 |
-
} else {
|
565 |
-
$price = $this->get_price();
|
566 |
-
$price = learn_press_format_price( $price, true );
|
567 |
-
$price_html = apply_filters( 'learn_press_course_price_html', $price, $this );
|
568 |
-
}
|
569 |
-
return $price_html;
|
570 |
-
}
|
571 |
-
|
572 |
-
|
573 |
-
/**
|
574 |
-
* Get the price of course with html
|
575 |
-
*
|
576 |
-
* @return mixed
|
577 |
-
*/
|
578 |
-
public function get_origin_price_html() {
|
579 |
-
$origin_price_html = '';
|
580 |
-
if ( !$this->is_free() ) {
|
581 |
-
$origin_price = $this->get_origin_price();
|
582 |
-
$origin_price = learn_press_format_price( $origin_price, true );
|
583 |
-
$origin_price_html = apply_filters( 'learn_press_course_origin_price_html', $origin_price, $this );
|
584 |
-
}
|
585 |
-
return $origin_price_html;
|
586 |
-
}
|
587 |
-
|
588 |
-
/**
|
589 |
-
* @param $limit int limit of records
|
590 |
-
* @param $force boolean force to query database
|
591 |
-
*
|
592 |
-
* @return array list enrolled students
|
593 |
-
*/
|
594 |
-
public function get_students_list( $force = false, $limit = - 1 ) {
|
595 |
-
if ( !$this->exists() ) return null;
|
596 |
-
|
597 |
-
global $wpdb;
|
598 |
-
if ( $limit < 0 ) $limit = PHP_INT_MAX;
|
599 |
-
|
600 |
-
if ( $this->_students_list === null || $force ) {
|
601 |
-
$query = $wpdb->prepare( "
|
602 |
-
SELECT DISTINCT u.*
|
603 |
-
FROM {$wpdb->users} u
|
604 |
-
INNER JOIN {$wpdb->prefix}learnpress_user_items ui ON ui.user_id = u.ID
|
605 |
-
WHERE ui.item_id = %d
|
606 |
-
AND ui.item_type = %s
|
607 |
-
LIMIT %d
|
608 |
-
", $this->id, LP_COURSE_CPT, $limit );
|
609 |
-
$this->_students_list = $wpdb->get_results( $query );
|
610 |
-
}
|
611 |
-
return $this->_students_list;
|
612 |
-
|
613 |
-
}
|
614 |
-
|
615 |
-
|
616 |
-
/**
|
617 |
-
* Get all quizzes in a course
|
618 |
-
*
|
619 |
-
* @param string
|
620 |
-
*
|
621 |
-
* @return array
|
622 |
-
*/
|
623 |
-
public function get_quizzes( $field = null ) {
|
624 |
-
$items = $this->get_curriculum_items(
|
625 |
-
array(
|
626 |
-
'force' => false,
|
627 |
-
'group' => true,
|
628 |
-
'field' => $field
|
629 |
-
)
|
630 |
-
);
|
631 |
-
$quizzes = !empty( $items['quizzes'] ) ? $items['quizzes'] : false;
|
632 |
-
return apply_filters( 'learn_press_course_quizzes', $quizzes, $this );
|
633 |
-
}
|
634 |
-
|
635 |
-
/**
|
636 |
-
* Get all lessons in a course
|
637 |
-
*
|
638 |
-
* @param mixed
|
639 |
-
*
|
640 |
-
* @return array
|
641 |
-
*/
|
642 |
-
public function get_lessons( $args = null ) {
|
643 |
-
$args = wp_parse_args(
|
644 |
-
$args,
|
645 |
-
array(
|
646 |
-
'field' => ''
|
647 |
-
)
|
648 |
-
);
|
649 |
-
$curriculum_args = array_merge(
|
650 |
-
array(
|
651 |
-
'force' => false,
|
652 |
-
'group' => true
|
653 |
-
),
|
654 |
-
$args
|
655 |
-
);
|
656 |
-
$items = $this->get_curriculum_items( $curriculum_args );
|
657 |
-
$lessons = !empty( $items['lessons'] ) ? $items['lessons'] : false;
|
658 |
-
return apply_filters( 'learn_press_course_lessons', $lessons, $this );
|
659 |
-
}
|
660 |
-
|
661 |
-
/**
|
662 |
-
* Get all items in a course
|
663 |
-
*
|
664 |
-
* @param array $args {
|
665 |
-
* force bool Force to get curriculum items that does not care for it is already existing in memory or not
|
666 |
-
* group bool Group the items returned by type of each item
|
667 |
-
* field string The fields want to get
|
668 |
-
* }
|
669 |
-
*
|
670 |
-
* @return array
|
671 |
-
*/
|
672 |
-
public function get_curriculum_items( $args = array() ) {
|
673 |
-
|
674 |
-
// default value for $args
|
675 |
-
$force = false;
|
676 |
-
$group = false;
|
677 |
-
$field = '';
|
678 |
-
$field_map = '';
|
679 |
-
$field_format = '';
|
680 |
-
|
681 |
-
$args = wp_parse_args(
|
682 |
-
$args,
|
683 |
-
array(
|
684 |
-
'force' => false,
|
685 |
-
'group' => false,
|
686 |
-
'field' => '',
|
687 |
-
'field_map' => '',
|
688 |
-
'field_format' => ''
|
689 |
-
)
|
690 |
-
);
|
691 |
-
$lessons = array();
|
692 |
-
$quizzes = array();
|
693 |
-
|
694 |
-
// overwrite default values with params passed
|
695 |
-
extract( $args );
|
696 |
-
$items = array();
|
697 |
-
if ( !$this->_curriculum_items || $force ) {
|
698 |
-
$curriculum = $this->get_curriculum( null, $force );
|
699 |
-
$index = 0;
|
700 |
-
if ( !empty( $field ) ) {
|
701 |
-
if ( is_string( $field ) ) {
|
702 |
-
$field = explode( '![\s]+!', $field );
|
703 |
-
}
|
704 |
-
settype( $field, 'array' );
|
705 |
-
} else {
|
706 |
-
$field = false;
|
707 |
-
}
|
708 |
-
if ( !empty( $field_map ) ) {
|
709 |
-
if ( is_string( $field_map ) ) {
|
710 |
-
$field_map = explode( '![\s]+!', $field_map );
|
711 |
-
}
|
712 |
-
settype( $field_map, 'array' );
|
713 |
-
} else {
|
714 |
-
$field_map = false;
|
715 |
-
}
|
716 |
-
if ( !empty( $field_format ) ) {
|
717 |
-
if ( is_string( $field_format ) ) {
|
718 |
-
$field_format = explode( '![\s]+!', $field_format );
|
719 |
-
}
|
720 |
-
settype( $field_format, 'array' );
|
721 |
-
} else {
|
722 |
-
$field_format = false;
|
723 |
-
}
|
724 |
-
//if( is_array( $field ) ) $field = array_map( $field, 'strtolower' );
|
725 |
-
if ( $curriculum ) foreach ( $curriculum as $section ) {
|
726 |
-
if ( empty( $section->items ) ) continue;
|
727 |
-
foreach ( $section->items as $loop_item ) {
|
728 |
-
$loop_item->section_id = $section->section_id;
|
729 |
-
if ( $field ) {
|
730 |
-
$item = array();
|
731 |
-
$item_array = (array) $loop_item;
|
732 |
-
foreach ( $field as $k => $field_name ) {
|
733 |
-
if ( array_key_exists( $field_name, $item_array ) ) {
|
734 |
-
if ( $field_map && !empty( $field_map[$k] ) ) {
|
735 |
-
$map_key = $field_map[$k];
|
736 |
-
} else {
|
737 |
-
$map_key = $field_name;
|
738 |
-
}
|
739 |
-
if ( $field_format && !empty( $field_format[$k] ) ) {
|
740 |
-
if ( $field_format[$k] == '%d' ) {
|
741 |
-
$item[$map_key] = strpos( '.', $item_array[$field_name] ) !== false ? floatval( $item_array[$field_name] ) : intval( $item_array[$field_name] );
|
742 |
-
} elseif ( $field_format[$k] == '%s' ) {
|
743 |
-
$item[$map_key] = (string) $item_array[$field_name];
|
744 |
-
}
|
745 |
-
} else {
|
746 |
-
$item[$map_key] = $item_array[$field_name];
|
747 |
-
}
|
748 |
-
//break;
|
749 |
-
}
|
750 |
-
}
|
751 |
-
if ( sizeof( $item ) == 1 ) {
|
752 |
-
$item = reset( $item );
|
753 |
-
}
|
754 |
-
} else {
|
755 |
-
$item = $loop_item;
|
756 |
-
}
|
757 |
-
if ( $loop_item->post_type == LP_LESSON_CPT ) {
|
758 |
-
$lessons[$index] = $item;
|
759 |
-
} else {
|
760 |
-
$quizzes[$index] = $item;
|
761 |
-
}
|
762 |
-
$index ++;
|
763 |
-
}
|
764 |
-
}
|
765 |
-
// group
|
766 |
-
if ( $group ) {
|
767 |
-
$items = array(
|
768 |
-
'quizzes' => $quizzes,
|
769 |
-
'lessons' => $lessons
|
770 |
-
);
|
771 |
-
} else {
|
772 |
-
// combine lessons and quizzes as it should be in curriculum
|
773 |
-
for ( $i = 0, $n = sizeof( $quizzes ) + sizeof( $lessons ); $i < $n; $i ++ ) {
|
774 |
-
if ( !empty( $quizzes[$i] ) ) {
|
775 |
-
$items[] = $quizzes[$i];
|
776 |
-
} elseif ( !empty( $lessons[$i] ) ) {
|
777 |
-
$items[] = $lessons[$i];
|
778 |
-
}
|
779 |
-
}
|
780 |
-
}
|
781 |
-
}
|
782 |
-
return apply_filters( 'learn_press_get_course_items', $items, $this );
|
783 |
-
}
|
784 |
-
|
785 |
-
public function is_viewing( $content = '' ) {
|
786 |
-
|
787 |
-
$item_type = !empty( $_REQUEST['course-item'] ) ? $_REQUEST['course-item'] : '';
|
788 |
-
$viewing = apply_filters( 'learn_press_course_is_viewing', $item_type ? $item_type : 'course' );
|
789 |
-
if ( $content ) {
|
790 |
-
return $content == $viewing;
|
791 |
-
}
|
792 |
-
return $viewing;
|
793 |
-
}
|
794 |
-
|
795 |
-
public function is_viewing_item( $item_id = false ) {
|
796 |
-
$item = LP()->global['course-item'];//$this->get_request_item();
|
797 |
-
$return = false;
|
798 |
-
if ( $item ) {
|
799 |
-
if ( $item_id ) {
|
800 |
-
$return = $item_id == $item->ID;
|
801 |
-
} else {
|
802 |
-
$return = $item->ID;
|
803 |
-
}
|
804 |
-
}
|
805 |
-
return apply_filters( 'learn_press_viewing_course_item', $return, $item_id, $this->id );
|
806 |
-
}
|
807 |
-
|
808 |
-
public function is_current_item( $item_id ) {
|
809 |
-
/*$item_type = !empty( $_REQUEST['course-item'] ) ? $_REQUEST['course-item'] : '';
|
810 |
-
$view_id = 0;
|
811 |
-
if ( $item_type ) {
|
812 |
-
if ( !empty( $_REQUEST[$item_type . '_id'] ) ) {
|
813 |
-
$view_id = $_REQUEST[$item_type . '_id'];
|
814 |
-
}
|
815 |
-
}*/
|
816 |
-
$current_item = $this->current_item;
|
817 |
-
$view_id = $current_item ? $current_item->ID : 0;
|
818 |
-
return apply_filters( 'learn_press_is_current_course_item', $view_id == $item_id, $item_id, $view_id, $this->id );
|
819 |
-
}
|
820 |
-
|
821 |
-
/**
|
822 |
-
* Check if the course has 'feature'
|
823 |
-
* This function call to a function with prefix 'has'
|
824 |
-
*
|
825 |
-
* @param string
|
826 |
-
*
|
827 |
-
* @return mixed
|
828 |
-
* @throws Exception
|
829 |
-
*/
|
830 |
-
public function has( $tag ) {
|
831 |
-
$args = func_get_args();
|
832 |
-
unset( $args[0] );
|
833 |
-
$method = 'has_' . preg_replace( '!-!', '_', $tag );
|
834 |
-
$callback = array( $this, $method );
|
835 |
-
if ( is_callable( $callback ) ) {
|
836 |
-
return call_user_func_array( $callback, $args );
|
837 |
-
} else {
|
838 |
-
throw new Exception( sprintf( __( 'The function %s doesn\'t exists', 'learnpress' ), $tag ) );
|
839 |
-
}
|
840 |
-
}
|
841 |
-
|
842 |
-
/**
|
843 |
-
* @param string
|
844 |
-
*
|
845 |
-
* @return mixed
|
846 |
-
* @throws Exception
|
847 |
-
*/
|
848 |
-
public function is( $tag ) {
|
849 |
-
$args = func_get_args();
|
850 |
-
unset( $args[0] );
|
851 |
-
$method = 'is_' . preg_replace( '!-!', '_', $tag );
|
852 |
-
$callback = array( $this, $method );
|
853 |
-
if ( is_callable( $callback ) ) {
|
854 |
-
return call_user_func_array( $callback, $args );
|
855 |
-
} else {
|
856 |
-
throw new Exception( sprintf( __( 'The function %s doesn\'t exists', 'learnpress' ), $tag ) );
|
857 |
-
}
|
858 |
-
}
|
859 |
-
|
860 |
-
/**
|
861 |
-
* Return true if this course can be purchaseable
|
862 |
-
*
|
863 |
-
* @return mixed
|
864 |
-
*/
|
865 |
-
public function is_purchasable() {
|
866 |
-
// TODO: needs to check more criteria, currently only check if this course is required enrollment
|
867 |
-
$is_purchasable = $this->is_required_enroll() && $this->post->post_status == 'publish';
|
868 |
-
if ( $is_purchasable ) {
|
869 |
-
$max_allowed = $this->max_students;
|
870 |
-
if ( $max_allowed > 0 ) {
|
871 |
-
$count_in_order = $this->count_in_order( array( 'completed', 'processing' ) );
|
872 |
-
$is_purchasable = $is_purchasable && ( $count_in_order < $max_allowed );
|
873 |
-
}
|
874 |
-
}
|
875 |
-
return apply_filters( 'learn_press_item_is_purchasable', $is_purchasable, $this->id );
|
876 |
-
}
|
877 |
-
|
878 |
-
public function count_in_order( $statuses = 'completed' ) {
|
879 |
-
global $wpdb;
|
880 |
-
settype( $statuses, 'array' );
|
881 |
-
foreach ( $statuses as $k => $v ) {
|
882 |
-
if ( !preg_match( '/^lp-/', $v ) ) {
|
883 |
-
$statuses[$k] = 'lp-' . $v;
|
884 |
-
}
|
885 |
-
}
|
886 |
-
$in_clause = join( ',', array_fill( 0, sizeof( $statuses ), '%s' ) );
|
887 |
-
$query = $wpdb->prepare( "
|
888 |
-
SELECT count(oim.meta_id)
|
889 |
-
FROM {$wpdb->learnpress_order_itemmeta} oim
|
890 |
-
INNER JOIN {$wpdb->learnpress_order_items} oi ON oi.order_item_id = oim.learnpress_order_item_id
|
891 |
-
AND oim.meta_key = %s
|
892 |
-
AND oim.meta_value = %d
|
893 |
-
INNER JOIN {$wpdb->posts} o ON o.ID = oi.order_id
|
894 |
-
WHERE o.post_type = %s
|
895 |
-
AND o.post_status IN ($in_clause)
|
896 |
-
", array_merge( array( '_course_id', $this->id, 'lp_order' ), $statuses ) );
|
897 |
-
return $wpdb->get_var( $query );
|
898 |
-
}
|
899 |
-
|
900 |
-
public function need_payment() {
|
901 |
-
return $this->payment == 'yes';
|
902 |
-
}
|
903 |
-
|
904 |
-
public function has_item( $item_id ) {
|
905 |
-
static $items = array();
|
906 |
-
if ( empty( $items[$this->id] ) ) {
|
907 |
-
$items[$this->id] = $this->get_curriculum_items( array( 'field' => 'ID'/*, 'force' => true */ ) );
|
908 |
-
}
|
909 |
-
|
910 |
-
return in_array( $item_id, (array) $items[$this->id] );
|
911 |
-
}
|
912 |
-
|
913 |
-
public function can_view_item( $item_id ) {
|
914 |
-
switch ( get_post_type() ) {
|
915 |
-
case LP_QUIZ_CPT:
|
916 |
-
}
|
917 |
-
}
|
918 |
-
|
919 |
-
public function get_item( $thing = '' ) {
|
920 |
-
$return = false;
|
921 |
-
$curriculum = $this->get_curriculum_items();
|
922 |
-
if ( !$curriculum ) {
|
923 |
-
return $return;
|
924 |
-
}
|
925 |
-
if ( !$thing ) {
|
926 |
-
return $return;
|
927 |
-
}
|
928 |
-
if ( $thing ) {
|
929 |
-
if ( is_numeric( $thing ) ) {
|
930 |
-
foreach ( $curriculum as $item ) {
|
931 |
-
if ( $item->ID == $thing ) {
|
932 |
-
switch ( $item->post_type ) {
|
933 |
-
case LP_QUIZ_CPT:
|
934 |
-
$return = new LP_Quiz( $item );
|
935 |
-
break;
|
936 |
-
case LP_LESSON_CPT:
|
937 |
-
$return = new LP_Lesson( $item );
|
938 |
-
break;
|
939 |
-
}
|
940 |
-
break;
|
941 |
-
}
|
942 |
-
}
|
943 |
-
}
|
944 |
-
}
|
945 |
-
return apply_filters( 'learn_press_course_item', $return, $item, $this->id );
|
946 |
-
}
|
947 |
-
|
948 |
-
public function get_item_link( $item_id ) {
|
949 |
-
static $item_links = array();
|
950 |
-
$key = $this->id . '-' . $item_id;
|
951 |
-
if ( empty( $item_links[$key] ) ) {
|
952 |
-
if ( !$this->has( 'item', $item_id ) ) {
|
953 |
-
return false;
|
954 |
-
}
|
955 |
-
$permalink = get_the_permalink( $item_id );
|
956 |
-
$post_types = get_post_types( null, 'objects' );
|
957 |
-
$item_type = get_post_type( $item_id );
|
958 |
-
switch ( $item_type ) {
|
959 |
-
case 'lp_lesson':
|
960 |
-
case 'lp_quiz':
|
961 |
-
$permalink = trailingslashit( get_the_permalink( $this->id ) );
|
962 |
-
$post_name = get_post_field( 'post_name', $item_id );
|
963 |
-
$
|
964 |
-
|
965 |
-
|
966 |
-
|
967 |
-
|
968 |
-
|
969 |
-
|
970 |
-
|
971 |
-
|
972 |
-
|
973 |
-
|
974 |
-
|
975 |
-
|
976 |
-
|
977 |
-
|
978 |
-
|
979 |
-
|
980 |
-
|
981 |
-
|
982 |
-
|
983 |
-
|
984 |
-
|
985 |
-
|
986 |
-
|
987 |
-
$
|
988 |
-
|
989 |
-
|
990 |
-
|
991 |
-
|
992 |
-
|
993 |
-
|
994 |
-
|
995 |
-
|
996 |
-
|
997 |
-
|
998 |
-
|
999 |
-
|
1000 |
-
|
1001 |
-
|
1002 |
-
|
1003 |
-
|
1004 |
-
if ( $
|
1005 |
-
|
1006 |
-
|
1007 |
-
|
1008 |
-
|
1009 |
-
|
1010 |
-
|
1011 |
-
|
1012 |
-
|
1013 |
-
|
1014 |
-
|
1015 |
-
|
1016 |
-
|
1017 |
-
|
1018 |
-
|
1019 |
-
|
1020 |
-
|
1021 |
-
|
1022 |
-
$
|
1023 |
-
|
1024 |
-
|
1025 |
-
|
1026 |
-
|
1027 |
-
|
1028 |
-
|
1029 |
-
|
1030 |
-
|
1031 |
-
|
1032 |
-
}
|
1033 |
-
|
1034 |
-
|
1035 |
-
|
1036 |
-
|
1037 |
-
|
1038 |
-
|
1039 |
-
|
1040 |
-
|
1041 |
-
|
1042 |
-
|
1043 |
-
|
1044 |
-
|
1045 |
-
|
1046 |
-
|
1047 |
-
|
1048 |
-
|
1049 |
-
|
1050 |
-
|
1051 |
-
|
1052 |
-
|
1053 |
-
|
1054 |
-
|
1055 |
-
|
1056 |
-
|
1057 |
-
|
1058 |
-
|
1059 |
-
|
1060 |
-
|
1061 |
-
|
1062 |
-
|
1063 |
-
|
1064 |
-
|
1065 |
-
|
1066 |
-
|
1067 |
-
)
|
1068 |
-
|
1069 |
-
|
1070 |
-
|
1071 |
-
|
1072 |
-
|
1073 |
-
|
1074 |
-
|
1075 |
-
|
1076 |
-
|
1077 |
-
|
1078 |
-
|
1079 |
-
|
1080 |
-
|
1081 |
-
|
1082 |
-
|
1083 |
-
|
1084 |
-
|
1085 |
-
$
|
1086 |
-
|
1087 |
-
|
1088 |
-
|
1089 |
-
|
1090 |
-
|
1091 |
-
|
1092 |
-
|
1093 |
-
|
1094 |
-
|
1095 |
-
|
1096 |
-
|
1097 |
-
|
1098 |
-
|
1099 |
-
|
1100 |
-
|
1101 |
-
|
1102 |
-
|
1103 |
-
|
1104 |
-
|
1105 |
-
|
1106 |
-
|
1107 |
-
|
1108 |
-
|
1109 |
-
|
1110 |
-
|
1111 |
-
|
1112 |
-
|
1113 |
-
|
1114 |
-
|
1115 |
-
|
1116 |
-
|
1117 |
-
|
1118 |
-
|
1119 |
-
|
1120 |
-
|
1121 |
-
|
1122 |
-
|
1123 |
-
|
1124 |
-
|
1125 |
-
|
1126 |
-
|
1127 |
-
|
1128 |
-
|
1129 |
-
|
1130 |
-
|
1131 |
-
|
1132 |
-
|
1133 |
-
|
1134 |
-
|
1135 |
-
|
1136 |
-
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
-
|
1141 |
-
|
1142 |
-
|
1143 |
-
|
1144 |
-
|
1145 |
-
|
1146 |
-
|
1147 |
-
|
1148 |
-
|
1149 |
-
|
1150 |
-
|
1151 |
-
|
1152 |
-
|
1153 |
-
|
1154 |
-
|
1155 |
-
|
1156 |
-
|
1157 |
-
|
1158 |
-
|
1159 |
-
|
1160 |
-
|
1161 |
-
|
1162 |
-
|
1163 |
-
|
1164 |
-
|
1165 |
-
|
1166 |
-
|
1167 |
-
|
1168 |
-
|
1169 |
-
|
1170 |
-
|
1171 |
-
|
1172 |
-
|
1173 |
-
|
1174 |
-
|
1175 |
-
|
1176 |
-
|
1177 |
-
$
|
1178 |
-
|
1179 |
-
|
1180 |
-
|
1181 |
-
|
1182 |
-
|
1183 |
-
|
1184 |
-
|
1185 |
-
|
1186 |
-
|
1187 |
-
|
1188 |
-
|
1189 |
-
|
1190 |
-
|
1191 |
-
|
1192 |
-
|
1193 |
-
|
1194 |
-
|
1195 |
-
|
1196 |
-
|
1197 |
-
|
1198 |
-
|
1199 |
-
|
1200 |
-
|
1201 |
-
|
1202 |
-
|
1203 |
-
|
1204 |
-
|
1205 |
-
|
1206 |
-
|
1207 |
-
|
1208 |
-
|
1209 |
-
|
1210 |
-
|
1211 |
-
|
1212 |
-
|
1213 |
-
|
1214 |
-
|
1215 |
-
|
1216 |
-
|
1217 |
-
|
1218 |
-
|
1219 |
-
|
1220 |
-
|
1221 |
-
|
1222 |
-
|
1223 |
-
|
1224 |
-
|
1225 |
-
|
1226 |
-
|
1227 |
-
|
1228 |
-
|
1229 |
-
|
1230 |
-
|
1231 |
-
|
1232 |
-
|
1233 |
-
|
1234 |
-
|
1235 |
-
|
1236 |
-
|
1237 |
-
|
1238 |
-
|
1239 |
-
if (
|
1240 |
-
|
1241 |
-
|
1242 |
-
|
1243 |
-
|
1244 |
-
|
1245 |
-
|
1246 |
-
|
1247 |
-
}
|
1248 |
-
|
1249 |
-
|
1250 |
-
|
1251 |
-
|
1252 |
-
|
1253 |
-
|
1254 |
-
|
1255 |
-
|
1256 |
-
|
1257 |
-
|
1258 |
-
|
1259 |
-
|
1260 |
-
|
1261 |
-
|
1262 |
-
|
1263 |
-
|
1264 |
-
|
1265 |
-
|
1266 |
-
|
1267 |
-
|
1268 |
-
|
1269 |
-
|
1270 |
-
|
1271 |
-
|
1272 |
-
|
1273 |
-
|
1274 |
-
|
1275 |
-
|
1276 |
-
|
1277 |
-
|
1278 |
-
|
1279 |
-
|
1280 |
-
|
1281 |
-
*
|
1282 |
-
*
|
1283 |
-
* @
|
1284 |
-
|
1285 |
-
|
1286 |
-
|
1287 |
-
|
1288 |
-
|
1289 |
-
|
1290 |
-
|
1291 |
-
return apply_filters( '
|
1292 |
-
}
|
1293 |
-
|
1294 |
-
|
1295 |
-
|
1296 |
-
|
1297 |
-
|
1298 |
-
|
1299 |
-
|
1300 |
-
|
1301 |
-
|
1302 |
-
|
1303 |
-
|
1304 |
-
|
1305 |
-
|
1306 |
-
|
1307 |
-
|
1308 |
-
|
1309 |
-
|
1310 |
-
|
1311 |
-
|
1312 |
-
|
1313 |
-
|
1314 |
-
|
1315 |
-
|
1316 |
-
|
1317 |
-
|
1318 |
-
|
1319 |
-
|
1320 |
-
|
1321 |
-
$result
|
1322 |
-
|
1323 |
-
|
1324 |
-
|
1325 |
-
|
1326 |
-
|
1327 |
-
|
1328 |
-
|
1329 |
-
|
1330 |
-
|
1331 |
-
|
1332 |
-
|
1333 |
-
|
1334 |
-
|
1335 |
-
|
1336 |
-
|
1337 |
-
|
1338 |
-
|
1339 |
-
|
1340 |
-
|
1341 |
-
|
1342 |
-
|
1343 |
-
|
1344 |
-
|
1345 |
-
|
1346 |
-
|
1347 |
-
|
1348 |
-
|
1349 |
-
|
1350 |
-
|
1351 |
-
|
1352 |
-
|
1353 |
-
|
1354 |
-
|
1355 |
-
|
1356 |
-
|
1357 |
-
|
1358 |
-
|
1359 |
-
|
1360 |
-
|
1361 |
-
|
1362 |
-
|
1363 |
-
|
1364 |
-
|
1365 |
-
|
1366 |
-
|
1367 |
-
/**
|
1368 |
-
* Get course
|
1369 |
-
*
|
1370 |
-
* @
|
1371 |
-
|
1372 |
-
|
1373 |
-
|
1374 |
-
|
1375 |
-
|
1376 |
-
|
1377 |
-
|
1378 |
-
|
1379 |
-
|
1380 |
-
|
1381 |
-
|
1382 |
-
|
1383 |
-
|
1384 |
-
|
1385 |
-
|
1386 |
-
|
1387 |
-
|
1388 |
-
|
1389 |
-
|
1390 |
-
|
1391 |
-
|
1392 |
-
|
1393 |
-
|
1394 |
-
|
1395 |
-
|
1396 |
-
|
1397 |
-
|
1398 |
-
|
1399 |
-
|
1400 |
-
|
1401 |
-
|
1402 |
-
|
1403 |
-
|
1404 |
-
}
|
1405 |
-
|
1406 |
-
|
1407 |
-
|
1408 |
-
|
1409 |
-
|
1410 |
-
|
1411 |
-
|
1412 |
-
|
1413 |
-
|
1414 |
-
|
1415 |
-
|
1416 |
-
|
1417 |
-
|
1418 |
-
|
1419 |
-
|
1420 |
-
|
1421 |
-
|
1422 |
-
|
1423 |
-
|
1424 |
-
|
1425 |
-
|
1426 |
-
|
1427 |
-
|
1428 |
-
|
1429 |
-
|
1430 |
-
|
1431 |
-
|
1432 |
-
*
|
1433 |
-
*
|
1434 |
-
*
|
1435 |
-
*
|
1436 |
-
|
1437 |
-
|
1438 |
-
|
1439 |
-
|
1440 |
-
|
1441 |
-
|
1442 |
-
|
1443 |
-
|
1444 |
-
|
1445 |
-
|
1446 |
-
|
1447 |
-
|
1448 |
-
|
1449 |
-
|
1450 |
-
|
1451 |
-
|
1452 |
-
|
1453 |
-
|
1454 |
-
|
1455 |
-
|
1456 |
-
|
1457 |
-
|
1458 |
-
|
1459 |
-
|
1460 |
-
|
1461 |
-
|
1462 |
-
|
1463 |
-
|
1464 |
-
|
1465 |
-
|
1466 |
-
|
1467 |
-
|
1468 |
-
|
1469 |
-
|
1470 |
-
|
1471 |
-
|
1472 |
-
|
1473 |
-
|
1474 |
-
|
1475 |
-
|
1476 |
-
|
1477 |
-
|
1478 |
-
|
1479 |
-
|
1480 |
-
|
1481 |
-
|
1482 |
-
|
1483 |
-
|
1484 |
-
|
1485 |
-
|
1486 |
-
|
1487 |
-
|
1488 |
-
|
1489 |
-
|
1490 |
-
|
1491 |
-
|
1492 |
-
|
1493 |
-
|
1494 |
-
|
1495 |
-
|
1496 |
-
|
1497 |
-
|
1498 |
-
|
1499 |
-
|
1500 |
-
|
1501 |
-
|
1502 |
-
|
1503 |
-
|
1504 |
-
|
1505 |
-
|
1506 |
-
|
1507 |
-
|
1508 |
-
|
1509 |
-
|
1510 |
-
|
1511 |
-
|
1512 |
-
|
1513 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1514 |
}
|
1 |
+
<?php
|
2 |
+
|
3 |
+
defined( 'ABSPATH' ) || exit();
|
4 |
+
|
5 |
+
/**
|
6 |
+
* Class LP_Abstract_Course
|
7 |
+
*/
|
8 |
+
abstract class LP_Abstract_Course {
|
9 |
+
/**
|
10 |
+
* The course (post) ID.
|
11 |
+
*
|
12 |
+
* @var int
|
13 |
+
*/
|
14 |
+
public $id = 0;
|
15 |
+
|
16 |
+
/**
|
17 |
+
* $post Stores post data
|
18 |
+
*
|
19 |
+
* @var $post WP_Post
|
20 |
+
*/
|
21 |
+
public $post = null;
|
22 |
+
|
23 |
+
/**
|
24 |
+
*
|
25 |
+
* @var string
|
26 |
+
*/
|
27 |
+
public $course_type = null;
|
28 |
+
|
29 |
+
/**
|
30 |
+
* Course curriculum
|
31 |
+
*
|
32 |
+
* @var array
|
33 |
+
*/
|
34 |
+
protected static $_curriculum = array();
|
35 |
+
|
36 |
+
/**
|
37 |
+
* @var null
|
38 |
+
*/
|
39 |
+
protected $_count_users = null;
|
40 |
+
|
41 |
+
/**
|
42 |
+
* @var null
|
43 |
+
*/
|
44 |
+
protected $_students_list = null;
|
45 |
+
|
46 |
+
/**
|
47 |
+
* @var array
|
48 |
+
*/
|
49 |
+
protected static $_lessons = array();
|
50 |
+
|
51 |
+
/**
|
52 |
+
* Constructor gets the post object and sets the ID for the loaded course.
|
53 |
+
*
|
54 |
+
* @param int|LP_Course|object $course Course ID, post object, or course object
|
55 |
+
* @param int $user
|
56 |
+
*/
|
57 |
+
public function __construct( $course, $user = 0 ) {
|
58 |
+
if ( is_numeric( $course ) ) {
|
59 |
+
$this->id = absint( $course );
|
60 |
+
$this->post = get_post( $this->id );
|
61 |
+
} elseif ( $course instanceof LP_Course ) {
|
62 |
+
$this->id = absint( $course->id );
|
63 |
+
$this->post = $course->post;
|
64 |
+
} elseif ( isset( $course->ID ) ) {
|
65 |
+
$this->id = absint( $course->ID );
|
66 |
+
$this->post = get_post( $course->ID );
|
67 |
+
}
|
68 |
+
if ( empty( self::$_lessons[$this->id] ) ) {
|
69 |
+
self::$_lessons[$this->id] = array();
|
70 |
+
}
|
71 |
+
if ( $user ) {
|
72 |
+
$this->init_for_user( $user );
|
73 |
+
}
|
74 |
+
}
|
75 |
+
|
76 |
+
public function init_for_user() {
|
77 |
+
|
78 |
+
}
|
79 |
+
|
80 |
+
/**
|
81 |
+
* __isset function.
|
82 |
+
*
|
83 |
+
* @param mixed $key
|
84 |
+
*
|
85 |
+
* @return bool
|
86 |
+
*/
|
87 |
+
public function __isset( $key ) {
|
88 |
+
return metadata_exists( 'post', $this->id, '_' . $key );
|
89 |
+
}
|
90 |
+
|
91 |
+
/**
|
92 |
+
* __get function.
|
93 |
+
*
|
94 |
+
* @param string $key
|
95 |
+
*
|
96 |
+
* @return mixed
|
97 |
+
*/
|
98 |
+
public function __get( $key ) {
|
99 |
+
if ( strcasecmp( $key, 'ID' ) == 0 ) {
|
100 |
+
$key = strtolower( $key );
|
101 |
+
}
|
102 |
+
if ( empty( $this->{$key} ) ) {
|
103 |
+
$value = false;
|
104 |
+
switch ( $key ) {
|
105 |
+
case 'current_item':
|
106 |
+
if ( !empty( LP()->global['course-item'] ) ) {
|
107 |
+
$value = LP()->global['course-item'];
|
108 |
+
}
|
109 |
+
|
110 |
+
break;
|
111 |
+
case 'current_lesson':
|
112 |
+
$lesson_id = ( ( $lesson_id = learn_press_get_request( "lesson_id" ) ) && $this->has( 'item', $lesson_id ) ) ? $lesson_id : null;
|
113 |
+
if ( $lesson_id ) {
|
114 |
+
$value = LP_Lesson::get_lesson( $lesson_id );
|
115 |
+
}
|
116 |
+
break;
|
117 |
+
case 'permalink':
|
118 |
+
$value = get_the_permalink( $this->id );
|
119 |
+
break;
|
120 |
+
case 'duration':
|
121 |
+
$value = get_post_meta( $this->id, '_lp_' . $key, true );
|
122 |
+
$duration = learn_press_get_course_duration_support();
|
123 |
+
$duration_keys = array_keys( $duration );
|
124 |
+
if ( !preg_match_all( '!([0-9]+)\s(' . join( '|', $duration_keys ) . ')!', $value, $matches ) ) {
|
125 |
+
$a1 = absint( $value );
|
126 |
+
$a2 = end( $duration_keys );
|
127 |
+
$value = $a1 . ' ' . $a2;
|
128 |
+
update_post_meta( $this->id, '_lp_' . $key, $value );
|
129 |
+
}
|
130 |
+
break;
|
131 |
+
default: // default is get course meta key
|
132 |
+
if ( func_num_args() > 1 ) {
|
133 |
+
$single = func_get_arg( 1 );
|
134 |
+
if ( $single !== false && $single !== true ) {
|
135 |
+
$single = true;
|
136 |
+
}
|
137 |
+
} else {
|
138 |
+
$single = true;
|
139 |
+
}
|
140 |
+
$value = get_post_meta( $this->id, '_lp_' . $key, $single );
|
141 |
+
if ( ( $key == 'price' || $key == 'total' ) && get_post_meta( $this->id, '_lp_payment', true ) != 'yes' ) {
|
142 |
+
$value = 0;
|
143 |
+
}
|
144 |
+
|
145 |
+
}
|
146 |
+
if ( !empty( $value ) ) {
|
147 |
+
$this->$key = $value;
|
148 |
+
}
|
149 |
+
}
|
150 |
+
return !empty( $this->$key ) ? $this->$key : null;
|
151 |
+
}
|
152 |
+
|
153 |
+
/**
|
154 |
+
* Get course thumbnail, return placeholder if it does not exists
|
155 |
+
*
|
156 |
+
* @param string $size
|
157 |
+
* @param array $attr
|
158 |
+
*
|
159 |
+
* @return mixed|null|void
|
160 |
+
*/
|
161 |
+
public function get_image( $size = 'course_thumbnail', $attr = array() ) {
|
162 |
+
$attr = wp_parse_args(
|
163 |
+
$attr,
|
164 |
+
array(
|
165 |
+
'alt' => $this->get_title()
|
166 |
+
)
|
167 |
+
);
|
168 |
+
$image = false;
|
169 |
+
if ( has_post_thumbnail( $this->id ) ) {
|
170 |
+
$image = get_the_post_thumbnail( $this->id, $size, $attr );
|
171 |
+
} elseif ( ( $parent_id = wp_get_post_parent_id( $this->id ) ) && has_post_thumbnail( $parent_id ) ) {
|
172 |
+
$image = get_the_post_thumbnail( $parent_id, $size, $attr );
|
173 |
+
}
|
174 |
+
if ( !$image ) {
|
175 |
+
if ( 'course_thumbnail' == $size ) {
|
176 |
+
$image = LP()->image( 'placeholder-400x250' );
|
177 |
+
} else {
|
178 |
+
$image = LP()->image( 'placeholder-800x450' );
|
179 |
+
}
|
180 |
+
$image = sprintf( '<img src="%s" %s />', $image, '' );
|
181 |
+
}
|
182 |
+
return apply_filters( 'learn_press_course_image', $image, $this->id, $size, $attr );
|
183 |
+
}
|
184 |
+
|
185 |
+
public function get_permalink() {
|
186 |
+
return $this->permalink;
|
187 |
+
}
|
188 |
+
|
189 |
+
public function is_visible() {
|
190 |
+
return true;
|
191 |
+
}
|
192 |
+
|
193 |
+
public function get_request_item( $field = 'id' ) {
|
194 |
+
$return = LP()->global['course-item'];
|
195 |
+
if ( !empty( $_REQUEST['course-item'] ) ) {
|
196 |
+
$type = $_REQUEST['course-item'];
|
197 |
+
if ( $field == 'type' ) {
|
198 |
+
$return = $type;
|
199 |
+
} elseif ( $field == 'id' ) {
|
200 |
+
$return = !empty( $_REQUEST[$type . '_id'] ) ? $_REQUEST[$type . '_id'] : 0;
|
201 |
+
} elseif ( $field == 'name' ) {
|
202 |
+
$return = !empty( $_REQUEST[$type] ) ? $_REQUEST[$type] : false;
|
203 |
+
}
|
204 |
+
}
|
205 |
+
return $return;
|
206 |
+
}
|
207 |
+
|
208 |
+
/**
|
209 |
+
* Get the course's post data.
|
210 |
+
*
|
211 |
+
* @return object
|
212 |
+
*/
|
213 |
+
public function get_course_data() {
|
214 |
+
return $this->post;
|
215 |
+
}
|
216 |
+
|
217 |
+
/**
|
218 |
+
*
|
219 |
+
* @return mixed
|
220 |
+
*/
|
221 |
+
public function is_enrollable() {
|
222 |
+
$enrollable = true;
|
223 |
+
|
224 |
+
// Products must exist of course
|
225 |
+
if ( !$this->exists() ) {
|
226 |
+
$enrollable = false;
|
227 |
+
// Check the product is published
|
228 |
+
} elseif ( $this->post->post_status !== 'publish' && !current_user_can( 'edit_post', $this->id ) ) {
|
229 |
+
$enrollable = false;
|
230 |
+
}
|
231 |
+
|
232 |
+
return apply_filters( 'learn_press_is_enrollable', $enrollable, $this );
|
233 |
+
}
|
234 |
+
|
235 |
+
/**
|
236 |
+
* Course is exists if the post is not empty
|
237 |
+
*
|
238 |
+
* @return bool
|
239 |
+
*/
|
240 |
+
public function exists() {
|
241 |
+
return empty( $this->post ) ? false : true;
|
242 |
+
}
|
243 |
+
|
244 |
+
/**
|
245 |
+
* The course is require enrollment or not
|
246 |
+
*
|
247 |
+
* @return bool
|
248 |
+
*/
|
249 |
+
public function is_require_enrollment() {
|
250 |
+
return $this->is_required_enroll();
|
251 |
+
}
|
252 |
+
|
253 |
+
/**
|
254 |
+
* Check if this course is required to enroll
|
255 |
+
*
|
256 |
+
* @param mixed
|
257 |
+
*
|
258 |
+
* @return bool
|
259 |
+
*/
|
260 |
+
public function is_required_enroll() {
|
261 |
+
|
262 |
+
if ( func_get_args() ) {
|
263 |
+
$required = $this->required_enroll == func_get_arg( 0 );
|
264 |
+
} else {
|
265 |
+
$required = $this->required_enroll !== 'no';
|
266 |
+
}
|
267 |
+
$required = $required || ( $this->payment == 'yes' );
|
268 |
+
|
269 |
+
return apply_filters( 'learn_press_course_required_enroll', $required, $this );
|
270 |
+
}
|
271 |
+
|
272 |
+
private function _get_posts_by_id( $ids ) {
|
273 |
+
global $wpdb;
|
274 |
+
settype( $ids, 'array' );
|
275 |
+
$posts = $wpdb->get_results( "
|
276 |
+
SELECT *
|
277 |
+
FROM {$wpdb->posts}
|
278 |
+
WHERE ID IN(" . join( ',', $ids ) . ")
|
279 |
+
" );
|
280 |
+
return $posts;
|
281 |
+
}
|
282 |
+
|
283 |
+
public function get_title() {
|
284 |
+
return apply_filters( 'learn_press_course_title', $this->post ? $this->post->post_title : '', $this );
|
285 |
+
}
|
286 |
+
|
287 |
+
public function get_description() {
|
288 |
+
return apply_filters( 'the_content', $this->post->post_content );
|
289 |
+
}
|
290 |
+
|
291 |
+
/**
|
292 |
+
* Get all curriculum of this course
|
293 |
+
*
|
294 |
+
* @param int $section_id
|
295 |
+
* @param bool $force
|
296 |
+
*
|
297 |
+
* @return mixed
|
298 |
+
*/
|
299 |
+
public function get_curriculum( $section_id = 0, $force = false ) {
|
300 |
+
if ( !$this->id ) {
|
301 |
+
return false;
|
302 |
+
}
|
303 |
+
if ( false ) {
|
304 |
+
$curriculum = LP_Cache::get_course_curriculum( false, array() );
|
305 |
+
|
306 |
+
if ( !array_key_exists( $this->id, $curriculum ) || $force ) {
|
307 |
+
global $wpdb;
|
308 |
+
|
309 |
+
$curriculum[$this->id] = array();
|
310 |
+
$query = $wpdb->prepare( "
|
311 |
+
SELECT cc.*
|
312 |
+
FROM {$wpdb->posts} p
|
313 |
+
INNER JOIN {$wpdb->learnpress_sections} cc ON p.ID = cc.section_course_id
|
314 |
+
WHERE p.ID = %d
|
315 |
+
ORDER BY `section_order` ASC
|
316 |
+
", $this->id );
|
317 |
+
if ( $rows = $wpdb->get_results( $query, OBJECT_K ) ) {
|
318 |
+
$section_ids = array_keys( $rows );
|
319 |
+
$how_many = count( $section_ids );
|
320 |
+
$placeholders = array_fill( 0, $how_many, '%d' );
|
321 |
+
$in = implode( ', ', $placeholders );
|
322 |
+
|
323 |
+
$query = $wpdb->prepare( "
|
324 |
+
SELECT si.*, p.*
|
325 |
+
FROM {$wpdb->posts} p
|
326 |
+
INNER JOIN {$wpdb->prefix}learnpress_section_items si ON si.item_id = p.ID
|
327 |
+
INNER JOIN {$wpdb->prefix}learnpress_sections s ON s.section_id = si.section_id
|
328 |
+
WHERE s.section_id IN( $in )
|
329 |
+
ORDER BY s.section_order, si.item_order ASC
|
330 |
+
", $section_ids );
|
331 |
+
$section_items = $wpdb->get_results( $query );
|
332 |
+
$post_ids = array();
|
333 |
+
foreach ( $rows as $row ) {
|
334 |
+
$section = $row;
|
335 |
+
$section->items = array();
|
336 |
+
if ( $section_items ) {
|
337 |
+
$count = 0;
|
338 |
+
foreach ( $section_items as $item ) {
|
339 |
+
if ( $item->section_id == $row->section_id ) {
|
340 |
+
$section->items[] = $item;
|
341 |
+
/**
|
342 |
+
* Add item to 'posts' cache group
|
343 |
+
*/
|
344 |
+
$item_post = wp_cache_get( $item->ID, 'posts' );
|
345 |
+
if ( !$item_post ) {
|
346 |
+
wp_cache_add( $item->ID, $item, 'posts' );
|
347 |
+
}
|
348 |
+
$post_ids[] = $item->ID;
|
349 |
+
$count ++;
|
350 |
+
} else {
|
351 |
+
if ( $count ) break;
|
352 |
+
}
|
353 |
+
}
|
354 |
+
}
|
355 |
+
$curriculum[$this->id][$section->section_id] = $section;
|
356 |
+
}
|
357 |
+
// update all meta data into cache
|
358 |
+
update_meta_cache( 'post', $post_ids );
|
359 |
+
//SELECT post_id, meta_key, meta_value FROM wp_postmeta WHERE post_id IN
|
360 |
+
}
|
361 |
+
}
|
362 |
+
LP_Cache::set_course_curriculum( $curriculum );
|
363 |
+
$return = false;
|
364 |
+
if ( $section_id ) {
|
365 |
+
if ( !empty( $curriculum[$this->id][$section_id] ) ) {
|
366 |
+
$return = $curriculum[$this->id][$section_id];
|
367 |
+
}
|
368 |
+
} else {
|
369 |
+
$return = $curriculum[$this->id];
|
370 |
+
}
|
371 |
+
} // end if(false)
|
372 |
+
else {
|
373 |
+
$curriculum = _learn_press_get_course_curriculum( $this->id, $force );
|
374 |
+
$return = false;
|
375 |
+
if ( $section_id ) {
|
376 |
+
if ( !empty( $curriculum[$section_id] ) ) {
|
377 |
+
$return = $curriculum[$section_id];
|
378 |
+
}
|
379 |
+
} else {
|
380 |
+
$return = $curriculum;
|
381 |
+
}
|
382 |
+
}
|
383 |
+
return apply_filters( 'learn_press_course_curriculum', $return, $this->id, $section_id );
|
384 |
+
}
|
385 |
+
|
386 |
+
/**
|
387 |
+
* Count the total of students has enrolled course
|
388 |
+
*
|
389 |
+
* @param string (null|append|swaps)
|
390 |
+
*
|
391 |
+
* @return mixed
|
392 |
+
*/
|
393 |
+
public function count_users_enrolled( $count_db = '' ) {
|
394 |
+
|
395 |
+
// Get students enrolled from settings of the course that owns course want to show
|
396 |
+
// So, if this value is set that means the result is fake ... :)
|
397 |
+
$enrolled = $this->students;
|
398 |
+
|
399 |
+
|
400 |
+
// But, if it is not set then we count the real value from DB
|
401 |
+
if ( $count_db ) {
|
402 |
+
$real_enrolled = $this->get_users_enrolled();
|
403 |
+
if ( $count_db == 'append' ) {
|
404 |
+
$enrolled += $real_enrolled;
|
405 |
+
} elseif ( $count_db == 'swaps' && $real_enrolled ) {
|
406 |
+
$enrolled = $real_enrolled;
|
407 |
+
}
|
408 |
+
}
|
409 |
+
return apply_filters( 'learn_press_count_users_enrolled', $enrolled, $this );
|
410 |
+
}
|
411 |
+
|
412 |
+
/**
|
413 |
+
* Count the real users has enrolled
|
414 |
+
*
|
415 |
+
* @param bool $force
|
416 |
+
*
|
417 |
+
* @return int
|
418 |
+
*/
|
419 |
+
public function get_users_enrolled( $force = false ) {
|
420 |
+
|
421 |
+
global $wpdb;
|
422 |
+
if ( $this->_count_users === null || $force ) {
|
423 |
+
$query = $wpdb->prepare( "
|
424 |
+
SELECT count(o.ID)
|
425 |
+
FROM {$wpdb->posts} o
|
426 |
+
INNER JOIN {$wpdb->learnpress_order_items} oi ON oi.order_id = o.ID
|
427 |
+
INNER JOIN {$wpdb->learnpress_order_itemmeta} oim ON oim.learnpress_order_item_id = oi.order_item_id
|
428 |
+
AND oim.meta_key = %s AND oim.meta_value = %d
|
429 |
+
WHERE o.post_status = %s
|
430 |
+
", '_course_id', $this->id, 'lp-completed' );
|
431 |
+
$this->_count_users = $wpdb->get_var( $query );
|
432 |
+
}
|
433 |
+
return $this->_count_users;
|
434 |
+
}
|
435 |
+
|
436 |
+
/**
|
437 |
+
* Output html for students enrolled counter
|
438 |
+
*
|
439 |
+
* @param int Optional - user ID
|
440 |
+
*
|
441 |
+
* @return string
|
442 |
+
*/
|
443 |
+
public function get_students_html( $user_id = null ) {
|
444 |
+
$output = '';
|
445 |
+
if ( $count = $this->count_users_enrolled( 'append' ) ):
|
446 |
+
$course_info = $this->get_course_info( $user_id );
|
447 |
+
if ( $course_info['status'] ):
|
448 |
+
if ( $count == 1 ):
|
449 |
+
$output .= __( 'You enrolled', 'learnpress' );
|
450 |
+
else:
|
451 |
+
$output .= sprintf( _nx( 'You and one student enrolled', 'You and <span class="course-students-number">%1$s</span> students enrolled', intval( $count - 1 ), '', 'learnpress' ), $count - 1 );
|
452 |
+
endif;
|
453 |
+
$output = apply_filters( 'learn_press_students_enrolled_html', $output, $this );
|
454 |
+
else:
|
455 |
+
$output = sprintf( _nx( 'One student enrolled', '<span class="course-students-number">%1$s</span> students enrolled', $count, '', 'learnpress' ), $count );
|
456 |
+
$output = apply_filters( 'learn_press_one_student_enrolled_html', $output, $this );
|
457 |
+
endif;
|
458 |
+
else:
|
459 |
+
$output = apply_filters( 'learn_press_no_student_enrolled_html', __( 'No student enrolled', 'learnpress' ), $this );
|
460 |
+
endif;
|
461 |
+
return $output;
|
462 |
+
}
|
463 |
+
|
464 |
+
public function get_instructor() {
|
465 |
+
$user_data = get_userdata( $this->post->post_author );
|
466 |
+
$author_name = '';
|
467 |
+
if ( $user_data ) {
|
468 |
+
$author_name = $user_data->display_name;
|
469 |
+
}
|
470 |
+
return apply_filters( 'learn_press_course_instructor', $author_name, $this->id );
|
471 |
+
}
|
472 |
+
|
473 |
+
public function get_instructor_html() {
|
474 |
+
$instructor = $this->get_instructor();
|
475 |
+
$html = sprintf(
|
476 |
+
'<a href="%s">%s</a>',
|
477 |
+
learn_press_user_profile_link( $this->post->post_author ),
|
478 |
+
$instructor
|
479 |
+
);
|
480 |
+
return apply_filters( 'learn_press_course_instructor_html', $html, $this->post->post_author, $this->id );
|
481 |
+
}
|
482 |
+
|
483 |
+
public function get_course_info( $user_id = null ) {
|
484 |
+
if ( !$user_id ) {
|
485 |
+
$user_id = get_current_user_id();
|
486 |
+
}
|
487 |
+
$user = learn_press_get_user( $user_id );
|
488 |
+
return $user->get_course_info( $this->id );
|
489 |
+
}
|
490 |
+
|
491 |
+
/**
|
492 |
+
* Check if a course is FREE or need to pay or enroll
|
493 |
+
*
|
494 |
+
* @return bool
|
495 |
+
*/
|
496 |
+
public function is_free() {
|
497 |
+
$is_free = ( 'no' == $this->payment || ( 0 >= $this->get_price() ) );
|
498 |
+
return apply_filters( 'learn_press_is_free_course', $is_free, $this );
|
499 |
+
}
|
500 |
+
|
501 |
+
/**
|
502 |
+
* Get the origin price of course
|
503 |
+
* @return mixed
|
504 |
+
*/
|
505 |
+
public function get_origin_price() {
|
506 |
+
$price = $this->price;
|
507 |
+
if ( !$price || 'yes' != $this->payment ) {
|
508 |
+
$price = 0;
|
509 |
+
} else {
|
510 |
+
$price = floatval( $price );
|
511 |
+
}
|
512 |
+
return $price;
|
513 |
+
}
|
514 |
+
|
515 |
+
/**
|
516 |
+
* Get the sale price of course
|
517 |
+
* @return mixed
|
518 |
+
*/
|
519 |
+
public function get_sale_price() {
|
520 |
+
$res = null;
|
521 |
+
$sale_price = get_post_meta( $this->id, '_lp_sale_price', true );
|
522 |
+
if ( 'yes' == $this->payment && is_numeric( $sale_price ) ) {
|
523 |
+
$sale_price = floatval( $sale_price );
|
524 |
+
$start_date = get_post_meta( $this->id, '_lp_sale_start', true );
|
525 |
+
$end_date = get_post_meta( $this->id, '_lp_sale_end', true );
|
526 |
+
$now = current_time( 'timestamp' );
|
527 |
+
$end = strtotime( $end_date );
|
528 |
+
$start = strtotime( $start_date );
|
529 |
+
if ( ( $now >= $start || !$start_date ) && ( $now <= $end || !$end_date ) && $sale_price ) {
|
530 |
+
$res = $sale_price;
|
531 |
+
}
|
532 |
+
}
|
533 |
+
return $res;
|
534 |
+
}
|
535 |
+
|
536 |
+
/**
|
537 |
+
* Get the price of course
|
538 |
+
*
|
539 |
+
* @return mixed
|
540 |
+
*/
|
541 |
+
public function get_price() {
|
542 |
+
$price = $this->price;
|
543 |
+
if ( !$price || 'yes' != $this->payment ) {
|
544 |
+
$price = 0;
|
545 |
+
} else {
|
546 |
+
$price = floatval( $price );
|
547 |
+
$sale_price = $this->get_sale_price();
|
548 |
+
if ( is_numeric( $sale_price ) ) {
|
549 |
+
$price = $sale_price;
|
550 |
+
}
|
551 |
+
}
|
552 |
+
return apply_filters( 'learn_press_course_price', $price, $this );
|
553 |
+
}
|
554 |
+
|
555 |
+
/**
|
556 |
+
* Get the price of course with html
|
557 |
+
*
|
558 |
+
* @return mixed
|
559 |
+
*/
|
560 |
+
public function get_price_html() {
|
561 |
+
|
562 |
+
if ( $this->is_free() ) {
|
563 |
+
$price_html = apply_filters( 'learn_press_course_price_html_free', __( 'Free', 'learnpress' ), $this );
|
564 |
+
} else {
|
565 |
+
$price = $this->get_price();
|
566 |
+
$price = learn_press_format_price( $price, true );
|
567 |
+
$price_html = apply_filters( 'learn_press_course_price_html', $price, $this );
|
568 |
+
}
|
569 |
+
return $price_html;
|
570 |
+
}
|
571 |
+
|
572 |
+
|
573 |
+
/**
|
574 |
+
* Get the price of course with html
|
575 |
+
*
|
576 |
+
* @return mixed
|
577 |
+
*/
|
578 |
+
public function get_origin_price_html() {
|
579 |
+
$origin_price_html = '';
|
580 |
+
if ( !$this->is_free() ) {
|
581 |
+
$origin_price = $this->get_origin_price();
|
582 |
+
$origin_price = learn_press_format_price( $origin_price, true );
|
583 |
+
$origin_price_html = apply_filters( 'learn_press_course_origin_price_html', $origin_price, $this );
|
584 |
+
}
|
585 |
+
return $origin_price_html;
|
586 |
+
}
|
587 |
+
|
588 |
+
/**
|
589 |
+
* @param $limit int limit of records
|
590 |
+
* @param $force boolean force to query database
|
591 |
+
*
|
592 |
+
* @return array list enrolled students
|
593 |
+
*/
|
594 |
+
public function get_students_list( $force = false, $limit = - 1 ) {
|
595 |
+
if ( !$this->exists() ) return null;
|
596 |
+
|
597 |
+
global $wpdb;
|
598 |
+
if ( $limit < 0 ) $limit = PHP_INT_MAX;
|
599 |
+
|
600 |
+
if ( $this->_students_list === null || $force ) {
|
601 |
+
$query = $wpdb->prepare( "
|
602 |
+
SELECT DISTINCT u.*
|
603 |
+
FROM {$wpdb->users} u
|
604 |
+
INNER JOIN {$wpdb->prefix}learnpress_user_items ui ON ui.user_id = u.ID
|
605 |
+
WHERE ui.item_id = %d
|
606 |
+
AND ui.item_type = %s
|
607 |
+
LIMIT %d
|
608 |
+
", $this->id, LP_COURSE_CPT, $limit );
|
609 |
+
$this->_students_list = $wpdb->get_results( $query );
|
610 |
+
}
|
611 |
+
return $this->_students_list;
|
612 |
+
|
613 |
+
}
|
614 |
+
|
615 |
+
|
616 |
+
/**
|
617 |
+
* Get all quizzes in a course
|
618 |
+
*
|
619 |
+
* @param string
|
620 |
+
*
|
621 |
+
* @return array
|
622 |
+
*/
|
623 |
+
public function get_quizzes( $field = null ) {
|
624 |
+
$items = $this->get_curriculum_items(
|
625 |
+
array(
|
626 |
+
'force' => false,
|
627 |
+
'group' => true,
|
628 |
+
'field' => $field
|
629 |
+
)
|
630 |
+
);
|
631 |
+
$quizzes = !empty( $items['quizzes'] ) ? $items['quizzes'] : false;
|
632 |
+
return apply_filters( 'learn_press_course_quizzes', $quizzes, $this );
|
633 |
+
}
|
634 |
+
|
635 |
+
/**
|
636 |
+
* Get all lessons in a course
|
637 |
+
*
|
638 |
+
* @param mixed
|
639 |
+
*
|
640 |
+
* @return array
|
641 |
+
*/
|
642 |
+
public function get_lessons( $args = null ) {
|
643 |
+
$args = wp_parse_args(
|
644 |
+
$args,
|
645 |
+
array(
|
646 |
+
'field' => ''
|
647 |
+
)
|
648 |
+
);
|
649 |
+
$curriculum_args = array_merge(
|
650 |
+
array(
|
651 |
+
'force' => false,
|
652 |
+
'group' => true
|
653 |
+
),
|
654 |
+
$args
|
655 |
+
);
|
656 |
+
$items = $this->get_curriculum_items( $curriculum_args );
|
657 |
+
$lessons = !empty( $items['lessons'] ) ? $items['lessons'] : false;
|
658 |
+
return apply_filters( 'learn_press_course_lessons', $lessons, $this );
|
659 |
+
}
|
660 |
+
|
661 |
+
/**
|
662 |
+
* Get all items in a course
|
663 |
+
*
|
664 |
+
* @param array $args {
|
665 |
+
* force bool Force to get curriculum items that does not care for it is already existing in memory or not
|
666 |
+
* group bool Group the items returned by type of each item
|
667 |
+
* field string The fields want to get
|
668 |
+
* }
|
669 |
+
*
|
670 |
+
* @return array
|
671 |
+
*/
|
672 |
+
public function get_curriculum_items( $args = array() ) {
|
673 |
+
|
674 |
+
// default value for $args
|
675 |
+
$force = false;
|
676 |
+
$group = false;
|
677 |
+
$field = '';
|
678 |
+
$field_map = '';
|
679 |
+
$field_format = '';
|
680 |
+
|
681 |
+
$args = wp_parse_args(
|
682 |
+
$args,
|
683 |
+
array(
|
684 |
+
'force' => false,
|
685 |
+
'group' => false,
|
686 |
+
'field' => '',
|
687 |
+
'field_map' => '',
|
688 |
+
'field_format' => ''
|
689 |
+
)
|
690 |
+
);
|
691 |
+
$lessons = array();
|
692 |
+
$quizzes = array();
|
693 |
+
|
694 |
+
// overwrite default values with params passed
|
695 |
+
extract( $args );
|
696 |
+
$items = array();
|
697 |
+
if ( !$this->_curriculum_items || $force ) {
|
698 |
+
$curriculum = $this->get_curriculum( null, $force );
|
699 |
+
$index = 0;
|
700 |
+
if ( !empty( $field ) ) {
|
701 |
+
if ( is_string( $field ) ) {
|
702 |
+
$field = explode( '![\s]+!', $field );
|
703 |
+
}
|
704 |
+
settype( $field, 'array' );
|
705 |
+
} else {
|
706 |
+
$field = false;
|
707 |
+
}
|
708 |
+
if ( !empty( $field_map ) ) {
|
709 |
+
if ( is_string( $field_map ) ) {
|
710 |
+
$field_map = explode( '![\s]+!', $field_map );
|
711 |
+
}
|
712 |
+
settype( $field_map, 'array' );
|
713 |
+
} else {
|
714 |
+
$field_map = false;
|
715 |
+
}
|
716 |
+
if ( !empty( $field_format ) ) {
|
717 |
+
if ( is_string( $field_format ) ) {
|
718 |
+
$field_format = explode( '![\s]+!', $field_format );
|
719 |
+
}
|
720 |
+
settype( $field_format, 'array' );
|
721 |
+
} else {
|
722 |
+
$field_format = false;
|
723 |
+
}
|
724 |
+
//if( is_array( $field ) ) $field = array_map( $field, 'strtolower' );
|
725 |
+
if ( $curriculum ) foreach ( $curriculum as $section ) {
|
726 |
+
if ( empty( $section->items ) ) continue;
|
727 |
+
foreach ( $section->items as $loop_item ) {
|
728 |
+
$loop_item->section_id = $section->section_id;
|
729 |
+
if ( $field ) {
|
730 |
+
$item = array();
|
731 |
+
$item_array = (array) $loop_item;
|
732 |
+
foreach ( $field as $k => $field_name ) {
|
733 |
+
if ( array_key_exists( $field_name, $item_array ) ) {
|
734 |
+
if ( $field_map && !empty( $field_map[$k] ) ) {
|
735 |
+
$map_key = $field_map[$k];
|
736 |
+
} else {
|
737 |
+
$map_key = $field_name;
|
738 |
+
}
|
739 |
+
if ( $field_format && !empty( $field_format[$k] ) ) {
|
740 |
+
if ( $field_format[$k] == '%d' ) {
|
741 |
+
$item[$map_key] = strpos( '.', $item_array[$field_name] ) !== false ? floatval( $item_array[$field_name] ) : intval( $item_array[$field_name] );
|
742 |
+
} elseif ( $field_format[$k] == '%s' ) {
|
743 |
+
$item[$map_key] = (string) $item_array[$field_name];
|
744 |
+
}
|
745 |
+
} else {
|
746 |
+
$item[$map_key] = $item_array[$field_name];
|
747 |
+
}
|
748 |
+
//break;
|
749 |
+
}
|
750 |
+
}
|
751 |
+
if ( sizeof( $item ) == 1 ) {
|
752 |
+
$item = reset( $item );
|
753 |
+
}
|
754 |
+
} else {
|
755 |
+
$item = $loop_item;
|
756 |
+
}
|
757 |
+
if ( $loop_item->post_type == LP_LESSON_CPT ) {
|
758 |
+
$lessons[$index] = $item;
|
759 |
+
} else {
|
760 |
+
$quizzes[$index] = $item;
|
761 |
+
}
|
762 |
+
$index ++;
|
763 |
+
}
|
764 |
+
}
|
765 |
+
// group
|
766 |
+
if ( $group ) {
|
767 |
+
$items = array(
|
768 |
+
'quizzes' => $quizzes,
|
769 |
+
'lessons' => $lessons
|
770 |
+
);
|
771 |
+
} else {
|
772 |
+
// combine lessons and quizzes as it should be in curriculum
|
773 |
+
for ( $i = 0, $n = sizeof( $quizzes ) + sizeof( $lessons ); $i < $n; $i ++ ) {
|
774 |
+
if ( !empty( $quizzes[$i] ) ) {
|
775 |
+
$items[] = $quizzes[$i];
|
776 |
+
} elseif ( !empty( $lessons[$i] ) ) {
|
777 |
+
$items[] = $lessons[$i];
|
778 |
+
}
|
779 |
+
}
|
780 |
+
}
|
781 |
+
}
|
782 |
+
return apply_filters( 'learn_press_get_course_items', $items, $this );
|
783 |
+
}
|
784 |
+
|
785 |
+
public function is_viewing( $content = '' ) {
|
786 |
+
|
787 |
+
$item_type = !empty( $_REQUEST['course-item'] ) ? $_REQUEST['course-item'] : '';
|
788 |
+
$viewing = apply_filters( 'learn_press_course_is_viewing', $item_type ? $item_type : 'course' );
|
789 |
+
if ( $content ) {
|
790 |
+
return $content == $viewing;
|
791 |
+
}
|
792 |
+
return $viewing;
|
793 |
+
}
|
794 |
+
|
795 |
+
public function is_viewing_item( $item_id = false ) {
|
796 |
+
$item = LP()->global['course-item'];//$this->get_request_item();
|
797 |
+
$return = false;
|
798 |
+
if ( $item ) {
|
799 |
+
if ( $item_id ) {
|
800 |
+
$return = $item_id == $item->ID;
|
801 |
+
} else {
|
802 |
+
$return = $item->ID;
|
803 |
+
}
|
804 |
+
}
|
805 |
+
return apply_filters( 'learn_press_viewing_course_item', $return, $item_id, $this->id );
|
806 |
+
}
|
807 |
+
|
808 |
+
public function is_current_item( $item_id ) {
|
809 |
+
/*$item_type = !empty( $_REQUEST['course-item'] ) ? $_REQUEST['course-item'] : '';
|
810 |
+
$view_id = 0;
|
811 |
+
if ( $item_type ) {
|
812 |
+
if ( !empty( $_REQUEST[$item_type . '_id'] ) ) {
|
813 |
+
$view_id = $_REQUEST[$item_type . '_id'];
|
814 |
+
}
|
815 |
+
}*/
|
816 |
+
$current_item = $this->current_item;
|
817 |
+
$view_id = $current_item ? $current_item->ID : 0;
|
818 |
+
return apply_filters( 'learn_press_is_current_course_item', $view_id == $item_id, $item_id, $view_id, $this->id );
|
819 |
+
}
|
820 |
+
|
821 |
+
/**
|
822 |
+
* Check if the course has 'feature'
|
823 |
+
* This function call to a function with prefix 'has'
|
824 |
+
*
|
825 |
+
* @param string
|
826 |
+
*
|
827 |
+
* @return mixed
|
828 |
+
* @throws Exception
|
829 |
+
*/
|
830 |
+
public function has( $tag ) {
|
831 |
+
$args = func_get_args();
|
832 |
+
unset( $args[0] );
|
833 |
+
$method = 'has_' . preg_replace( '!-!', '_', $tag );
|
834 |
+
$callback = array( $this, $method );
|
835 |
+
if ( is_callable( $callback ) ) {
|
836 |
+
return call_user_func_array( $callback, $args );
|
837 |
+
} else {
|
838 |
+
throw new Exception( sprintf( __( 'The function %s doesn\'t exists', 'learnpress' ), $tag ) );
|
839 |
+
}
|
840 |
+
}
|
841 |
+
|
842 |
+
/**
|
843 |
+
* @param string
|
844 |
+
*
|
845 |
+
* @return mixed
|
846 |
+
* @throws Exception
|
847 |
+
*/
|
848 |
+
public function is( $tag ) {
|
849 |
+
$args = func_get_args();
|
850 |
+
unset( $args[0] );
|
851 |
+
$method = 'is_' . preg_replace( '!-!', '_', $tag );
|
852 |
+
$callback = array( $this, $method );
|
853 |
+
if ( is_callable( $callback ) ) {
|
854 |
+
return call_user_func_array( $callback, $args );
|
855 |
+
} else {
|
856 |
+
throw new Exception( sprintf( __( 'The function %s doesn\'t exists', 'learnpress' ), $tag ) );
|
857 |
+
}
|
858 |
+
}
|
859 |
+
|
860 |
+
/**
|
861 |
+
* Return true if this course can be purchaseable
|
862 |
+
*
|
863 |
+
* @return mixed
|
864 |
+
*/
|
865 |
+
public function is_purchasable() {
|
866 |
+
// TODO: needs to check more criteria, currently only check if this course is required enrollment
|
867 |
+
$is_purchasable = $this->is_required_enroll() && $this->post->post_status == 'publish';
|
868 |
+
if ( $is_purchasable ) {
|
869 |
+
$max_allowed = $this->max_students;
|
870 |
+
if ( $max_allowed > 0 ) {
|
871 |
+
$count_in_order = $this->count_in_order( array( 'completed', 'processing' ) );
|
872 |
+
$is_purchasable = $is_purchasable && ( $count_in_order < $max_allowed );
|
873 |
+
}
|
874 |
+
}
|
875 |
+
return apply_filters( 'learn_press_item_is_purchasable', $is_purchasable, $this->id );
|
876 |
+
}
|
877 |
+
|
878 |
+
public function count_in_order( $statuses = 'completed' ) {
|
879 |
+
global $wpdb;
|
880 |
+
settype( $statuses, 'array' );
|
881 |
+
foreach ( $statuses as $k => $v ) {
|
882 |
+
if ( !preg_match( '/^lp-/', $v ) ) {
|
883 |
+
$statuses[$k] = 'lp-' . $v;
|
884 |
+
}
|
885 |
+
}
|
886 |
+
$in_clause = join( ',', array_fill( 0, sizeof( $statuses ), '%s' ) );
|
887 |
+
$query = $wpdb->prepare( "
|
888 |
+
SELECT count(oim.meta_id)
|
889 |
+
FROM {$wpdb->learnpress_order_itemmeta} oim
|
890 |
+
INNER JOIN {$wpdb->learnpress_order_items} oi ON oi.order_item_id = oim.learnpress_order_item_id
|
891 |
+
AND oim.meta_key = %s
|
892 |
+
AND oim.meta_value = %d
|
893 |
+
INNER JOIN {$wpdb->posts} o ON o.ID = oi.order_id
|
894 |
+
WHERE o.post_type = %s
|
895 |
+
AND o.post_status IN ($in_clause)
|
896 |
+
", array_merge( array( '_course_id', $this->id, 'lp_order' ), $statuses ) );
|
897 |
+
return $wpdb->get_var( $query );
|
898 |
+
}
|
899 |
+
|
900 |
+
public function need_payment() {
|
901 |
+
return $this->payment == 'yes';
|
902 |
+
}
|
903 |
+
|
904 |
+
public function has_item( $item_id ) {
|
905 |
+
static $items = array();
|
906 |
+
if ( empty( $items[$this->id] ) ) {
|
907 |
+
$items[$this->id] = $this->get_curriculum_items( array( 'field' => 'ID'/*, 'force' => true */ ) );
|
908 |
+
}
|
909 |
+
|
910 |
+
return in_array( $item_id, (array) $items[$this->id] );
|
911 |
+
}
|
912 |
+
|
913 |
+
public function can_view_item( $item_id ) {
|
914 |
+
switch ( get_post_type() ) {
|
915 |
+
case LP_QUIZ_CPT:
|
916 |
+
}
|
917 |
+
}
|
918 |
+
|
919 |
+
public function get_item( $thing = '' ) {
|
920 |
+
$return = false;
|
921 |
+
$curriculum = $this->get_curriculum_items();
|
922 |
+
if ( !$curriculum ) {
|
923 |
+
return $return;
|
924 |
+
}
|
925 |
+
if ( !$thing ) {
|
926 |
+
return $return;
|
927 |
+
}
|
928 |
+
if ( $thing ) {
|
929 |
+
if ( is_numeric( $thing ) ) {
|
930 |
+
foreach ( $curriculum as $item ) {
|
931 |
+
if ( $item->ID == $thing ) {
|
932 |
+
switch ( $item->post_type ) {
|
933 |
+
case LP_QUIZ_CPT:
|
934 |
+
$return = new LP_Quiz( $item );
|
935 |
+
break;
|
936 |
+
case LP_LESSON_CPT:
|
937 |
+
$return = new LP_Lesson( $item );
|
938 |
+
break;
|
939 |
+
}
|
940 |
+
break;
|
941 |
+
}
|
942 |
+
}
|
943 |
+
}
|
944 |
+
}
|
945 |
+
return apply_filters( 'learn_press_course_item', $return, $item, $this->id );
|
946 |
+
}
|
947 |
+
|
948 |
+
public function get_item_link( $item_id ) {
|
949 |
+
static $item_links = array();
|
950 |
+
$key = $this->id . '-' . $item_id;
|
951 |
+
if ( empty( $item_links[$key] ) ) {
|
952 |
+
if ( !$this->has( 'item', $item_id ) ) {
|
953 |
+
return false;
|
954 |
+
}
|
955 |
+
$permalink = get_the_permalink( $item_id );
|
956 |
+
$post_types = get_post_types( null, 'objects' );
|
957 |
+
$item_type = get_post_type( $item_id );
|
958 |
+
switch ( $item_type ) {
|
959 |
+
case 'lp_lesson':
|
960 |
+
case 'lp_quiz':
|
961 |
+
$permalink = trailingslashit( get_the_permalink( $this->id ) );
|
962 |
+
$post_name = get_post_field( 'post_name', $item_id );
|
963 |
+
$slug = $post_types[$item_type]->rewrite['slug'];
|
964 |
+
|
965 |
+
// $custom_prefix = '';
|
966 |
+
//
|
967 |
+
// if ( $slug === 'lessons' ) {
|
968 |
+
// $custom_prefix = LP()->settings->get( 'lesson_slug' );
|
969 |
+
// }
|
970 |
+
// else if ( $slug === 'quizzes' ) {
|
971 |
+
// $custom_prefix = LP()->settings->get( 'quizzes_slug' );
|
972 |
+
// }
|
973 |
+
//
|
974 |
+
// if ( !empty( $custom_prefix ) ) {
|
975 |
+
// $slug = sanitize_title_with_dashes( $custom_prefix );
|
976 |
+
// }
|
977 |
+
$prefix = preg_replace( '!^/!', '', trailingslashit( $slug ));//"{$item_id}-";
|
978 |
+
|
979 |
+
if ( '' != get_option( 'permalink_structure' ) && get_post_status( $this->id ) != 'draft' ) {
|
980 |
+
$permalink .= $prefix . $post_name;
|
981 |
+
} else {
|
982 |
+
$key = preg_replace( '!lp_!', '', get_post_type( $item_id ) );
|
983 |
+
$permalink = add_query_arg( array( $key => $post_name ), $permalink );
|
984 |
+
}
|
985 |
+
break;
|
986 |
+
}
|
987 |
+
$permalink = trailingslashit( $permalink );
|
988 |
+
$item_links[$key] = $permalink;
|
989 |
+
}
|
990 |
+
return apply_filters( 'learn_press_course_item_link', $item_links[$key], $item_id, $this );
|
991 |
+
}
|
992 |
+
|
993 |
+
public function get_next_item( $args = null ) {
|
994 |
+
$args = wp_parse_args( $args, array(
|
995 |
+
'current_item' => false,
|
996 |
+
'dir' => 'next',
|
997 |
+
'viewable' => null
|
998 |
+
) );
|
999 |
+
$items_types = apply_filters( 'learn_press_course_' . $args['dir'] . '_item_types', false, $this->id );
|
1000 |
+
if ( $items_types === false ) {
|
1001 |
+
$items = (array) $this->get_curriculum_items( array( 'field' => 'ID' ) );
|
1002 |
+
} else {
|
1003 |
+
$items = (array) $this->get_curriculum_items( array( 'field' => 'ID', 'group' => true ) );
|
1004 |
+
if ( !empty( $items[$items_types] ) ) {
|
1005 |
+
$items = array_values( $items[$items_types] );
|
1006 |
+
} else {
|
1007 |
+
$items = array();
|
1008 |
+
}
|
1009 |
+
}
|
1010 |
+
$items_len = sizeof( $items );
|
1011 |
+
if ( $items_len < 2 ) return false;
|
1012 |
+
$current_item = $args['current_item'] ? $args['current_item'] : ( $this->current_item ? $this->current_item->id : 0 );
|
1013 |
+
if ( !$current_item ) {
|
1014 |
+
$current_item = reset( $items );
|
1015 |
+
}
|
1016 |
+
$next_item = false;
|
1017 |
+
if ( ( $pos = array_search( $current_item, $items ) ) !== false ) {
|
1018 |
+
if ( $args['dir'] == 'next' ) {
|
1019 |
+
if ( $pos == sizeof( $items ) - 1 ) {
|
1020 |
+
$next_item = false;
|
1021 |
+
} else {
|
1022 |
+
if ( $args['viewable'] !== null ) {
|
1023 |
+
$user = learn_press_get_current_user();
|
1024 |
+
for ( $i = $pos + 1; $i < $items_len; $i ++ ) {
|
1025 |
+
if ( !!$user->can( 'view-item', $items[$i] ) === $args['viewable'] ) {
|
1026 |
+
$next_item = $items[$i];
|
1027 |
+
break;
|
1028 |
+
}
|
1029 |
+
}
|
1030 |
+
} else {
|
1031 |
+
$next_item = $items[$pos + 1];
|
1032 |
+
}
|
1033 |
+
}
|
1034 |
+
} else {
|
1035 |
+
if ( $pos == 0 ) {
|
1036 |
+
$next_item = false;
|
1037 |
+
} else {
|
1038 |
+
if ( $args['viewable'] !== null ) {
|
1039 |
+
$user = learn_press_get_current_user();
|
1040 |
+
for ( $i = $pos - 1; $i >= 0; $i -- ) {
|
1041 |
+
if ( !!$user->can( 'view-item', $items[$i] ) === $args['viewable'] ) {
|
1042 |
+
$next_item = $items[$i];
|
1043 |
+
break;
|
1044 |
+
}
|
1045 |
+
}
|
1046 |
+
} else {
|
1047 |
+
$next_item = $items[$pos - 1];
|
1048 |
+
}
|
1049 |
+
}
|
1050 |
+
}
|
1051 |
+
} else {
|
1052 |
+
$next_item = $args['dir'] == 'next' ? $items[1] : $items[$items_len - 1];
|
1053 |
+
}
|
1054 |
+
return apply_filters( 'learn_press_course_' . $args['dir'] . '_item', $next_item, $current_item, $this );
|
1055 |
+
}
|
1056 |
+
|
1057 |
+
public function get_next_item_html( $args = null ) {
|
1058 |
+
$args = wp_parse_args(
|
1059 |
+
$args,
|
1060 |
+
array(
|
1061 |
+
'current_item' => false,
|
1062 |
+
'viewable' => null,
|
1063 |
+
'dir' => 'next'
|
1064 |
+
)
|
1065 |
+
);
|
1066 |
+
if ( $next_item = $this->get_next_item( $args ) ) {
|
1067 |
+
ob_start();
|
1068 |
+
learn_press_get_template( 'content-lesson/next-button.php', array( 'item' => $next_item, 'course' => $this ) );
|
1069 |
+
return ob_get_clean();
|
1070 |
+
}
|
1071 |
+
return false;
|
1072 |
+
}
|
1073 |
+
|
1074 |
+
public function get_prev_item_html( $args = null ) {
|
1075 |
+
$args = wp_parse_args(
|
1076 |
+
$args,
|
1077 |
+
array(
|
1078 |
+
'current_item' => false,
|
1079 |
+
'viewable' => null,
|
1080 |
+
'dir' => 'prev'
|
1081 |
+
)
|
1082 |
+
);
|
1083 |
+
if ( $next_item = $this->get_next_item( $args ) ) {
|
1084 |
+
ob_start();
|
1085 |
+
learn_press_get_template( 'content-lesson/prev-button.php', array( 'item' => $next_item, 'course' => $this ) );
|
1086 |
+
return ob_get_clean();
|
1087 |
+
}
|
1088 |
+
return false;
|
1089 |
+
}
|
1090 |
+
|
1091 |
+
/**
|
1092 |
+
* @param int $user_id
|
1093 |
+
* @param bool $force
|
1094 |
+
*
|
1095 |
+
* @return mixed|null|void
|
1096 |
+
*/
|
1097 |
+
public function get_course_result_html( $user_id = 0, $force = false ) {
|
1098 |
+
if ( !$user_id ) {
|
1099 |
+
$user_id = get_current_user_id();
|
1100 |
+
}
|
1101 |
+
$html = '';
|
1102 |
+
$quizzes = $this->get_quizzes();
|
1103 |
+
if ( ( $this->course_result == 'evaluate_lesson' ) || !$quizzes ) {
|
1104 |
+
|
1105 |
+
$lessons = $this->get_lessons();
|
1106 |
+
$total_items = sizeof( $quizzes ) + sizeof( $lessons );
|
1107 |
+
|
1108 |
+
|
1109 |
+
$html = sprintf( __( '%d of %d items completed', 'learnpress' ), $this->count_completed_items( $user_id, $force ), $total_items );
|
1110 |
+
} else {
|
1111 |
+
if ( $this->course_result == 'evaluate_final_quiz' ) {
|
1112 |
+
$html = sprintf( __( '%d%% completed', 'learnpress' ), $this->_evaluate_course_by_quiz( $user_id, $force ) * 100 );
|
1113 |
+
} else {
|
1114 |
+
$html = sprintf( __( '%d%% completed', 'learnpress' ), $this->_evaluate_course_by_quizzes( $user_id, $force ) * 100 );
|
1115 |
+
}
|
1116 |
+
}
|
1117 |
+
return apply_filters( 'learn_press_course_result_html', $html, $this->id, $user_id );
|
1118 |
+
}
|
1119 |
+
|
1120 |
+
protected function _evaluate_course_by_items( $user_id = 0, $force = false ) {
|
1121 |
+
$items = $this->get_curriculum_items();
|
1122 |
+
$result = 0;
|
1123 |
+
if ( $items ) {
|
1124 |
+
$completed_items = $this->count_completed_items( $user_id, $force );
|
1125 |
+
$result = round( $completed_items / sizeof( $items ) * 100 );
|
1126 |
+
}
|
1127 |
+
return apply_filters( 'learn_press_course_results_by_items', $result, $this->id, $user_id );
|
1128 |
+
}
|
1129 |
+
|
1130 |
+
/**
|
1131 |
+
* Calculate course results for user by course results settings
|
1132 |
+
*
|
1133 |
+
* @param int $user_id
|
1134 |
+
* @param boolean $force
|
1135 |
+
*
|
1136 |
+
* @return mixed|null|void
|
1137 |
+
*/
|
1138 |
+
public function evaluate_course_results( $user_id = 0, $force = false ) {
|
1139 |
+
if ( !$user_id ) {
|
1140 |
+
$user_id = get_current_user_id();
|
1141 |
+
}
|
1142 |
+
|
1143 |
+
$quizzes = $this->get_quizzes();
|
1144 |
+
|
1145 |
+
if ( ( $this->course_result == 'evaluate_lesson' ) || !$quizzes ) {
|
1146 |
+
$results = $this->_evaluate_course_by_items( $user_id, $force );//$this->_evaluate_course_by_lesson( $user_id, $force );
|
1147 |
+
} else {
|
1148 |
+
if ( $this->course_result == 'evaluate_final_quiz' ) {
|
1149 |
+
$results = $this->_evaluate_course_by_quiz( $user_id, $force );
|
1150 |
+
} else {
|
1151 |
+
$results = $this->_evaluate_course_by_quizzes( $user_id, $force );
|
1152 |
+
}
|
1153 |
+
}
|
1154 |
+
return apply_filters( 'learn_press_evaluation_course_results', $results );
|
1155 |
+
}
|
1156 |
+
|
1157 |
+
public function is_evaluation( $thing ) {
|
1158 |
+
return $this->course_result == $thing;
|
1159 |
+
}
|
1160 |
+
|
1161 |
+
/**
|
1162 |
+
* Get number of lessons user has completed
|
1163 |
+
*
|
1164 |
+
* @param $user_id
|
1165 |
+
* @param bool $force
|
1166 |
+
*
|
1167 |
+
* @return int|mixed|null|void
|
1168 |
+
*/
|
1169 |
+
public function get_completed_lessons( $user_id, $force = false ) {
|
1170 |
+
//static $completed_lessons = array();
|
1171 |
+
$key = $user_id . '-' . $this->id;
|
1172 |
+
|
1173 |
+
$completed_lessons = LP_Cache::get_completed_lessons( false, array() );
|
1174 |
+
|
1175 |
+
if ( !array_key_exists( $key, $completed_lessons ) || $force ) {
|
1176 |
+
global $wpdb;
|
1177 |
+
$course_lessons = $this->get_lessons( array( 'field' => 'ID' ) );
|
1178 |
+
if ( !$course_lessons ) {
|
1179 |
+
return 0;
|
1180 |
+
}
|
1181 |
+
$query = $wpdb->prepare( "
|
1182 |
+
SELECT count(ul.item_id)
|
1183 |
+
FROM {$wpdb->prefix}learnpress_user_items ul
|
1184 |
+
INNER JOIN {$wpdb->posts} l ON l.ID = ul.item_id
|
1185 |
+
WHERE ul.user_id = %d
|
1186 |
+
AND status = %s
|
1187 |
+
AND ul.ref_id = %d
|
1188 |
+
AND ul.item_id IN(" . join( ",", $course_lessons ) . ")
|
1189 |
+
", $user_id, 'completed', $this->id );
|
1190 |
+
|
1191 |
+
$completed_lessons[$key] = $wpdb->get_var( $query );
|
1192 |
+
|
1193 |
+
LP_Cache::set_completed_lessons( $key, $completed_lessons[$key] );
|
1194 |
+
}
|
1195 |
+
|
1196 |
+
return apply_filters( 'learn_press_user_completed_lessons', $completed_lessons[$key], $this->id, $user_id );
|
1197 |
+
}
|
1198 |
+
|
1199 |
+
/**
|
1200 |
+
* Calculate results of course by lesson user completed
|
1201 |
+
*
|
1202 |
+
* @param int $user_id
|
1203 |
+
* @param boolean $force
|
1204 |
+
*
|
1205 |
+
* @return int|mixed|null|void
|
1206 |
+
*/
|
1207 |
+
public function _evaluate_course_by_lesson( $user_id, $force = false ) {
|
1208 |
+
//static $evaluate_course_by_lesson = array();
|
1209 |
+
$evaluate_course_by_lesson = LP_Cache::get_evaluate_course_by_lesson( false, array() );
|
1210 |
+
$key = $user_id . '-' . $this->id;
|
1211 |
+
if ( !array_key_exists( $key, $evaluate_course_by_lesson ) || $force ) {
|
1212 |
+
$course_lessons = $this->get_lessons( array( 'field' => 'ID' ) );
|
1213 |
+
$completed_lessons = $this->get_completed_lessons( $user_id );
|
1214 |
+
$evaluate_course_by_lesson[$key] = min( $completed_lessons / sizeof( $course_lessons ), 1 );
|
1215 |
+
LP_Cache::set_evaluate_course_by_lesson( $key, $evaluate_course_by_lesson[$key] );
|
1216 |
+
}
|
1217 |
+
return apply_filters( 'learn_press_evaluation_course_lesson', $evaluate_course_by_lesson[$key], $this->id, $user_id );
|
1218 |
+
}
|
1219 |
+
|
1220 |
+
/**
|
1221 |
+
* Get number of lessons user has completed
|
1222 |
+
*
|
1223 |
+
* @param $user_id
|
1224 |
+
* @param array $items
|
1225 |
+
* @param bool $force
|
1226 |
+
*
|
1227 |
+
* @return int|mixed|null|void
|
1228 |
+
*/
|
1229 |
+
public function get_completed_items( $user_id = 0, $items = array(), $force = false ) {
|
1230 |
+
if ( !$user_id ) {
|
1231 |
+
$user_id = get_current_user_id();
|
1232 |
+
}
|
1233 |
+
//$completed_items = LP_Cache::get_completed_items( false, array() );
|
1234 |
+
$key = $user_id . '-' . $this->id;
|
1235 |
+
|
1236 |
+
$item_statuses = LP_Cache::get_item_statuses( false, array() );
|
1237 |
+
$completed_items = array();
|
1238 |
+
if ( $item_statuses ) {
|
1239 |
+
if ( $curriculum_items = $this->post->curriculum_items ) {
|
1240 |
+
$curriculum_items = maybe_unserialize( $curriculum_items );
|
1241 |
+
foreach ( $curriculum_items as $item_id ) {
|
1242 |
+
$k = sprintf( '%d-%d-%d', $user_id, $this->id, $item_id );
|
1243 |
+
if ( !empty( $item_statuses[$k] ) && $item_statuses[$k] == 'completed' ) {
|
1244 |
+
$completed_items[] = $item_id;
|
1245 |
+
}
|
1246 |
+
}
|
1247 |
+
}
|
1248 |
+
}
|
1249 |
+
return apply_filters( 'learn_press_user_completed_items', $completed_items, $this->id, $user_id );
|
1250 |
+
if ( !array_key_exists( $key, $completed_items ) || $force ) {
|
1251 |
+
global $wpdb;
|
1252 |
+
$course_items = $this->get_curriculum_items( array( 'field' => 'ID' ) );
|
1253 |
+
if ( !$course_items ) {
|
1254 |
+
return 0;
|
1255 |
+
}
|
1256 |
+
if ( $items ) {
|
1257 |
+
$in_item_types = array_fill( 0, sizeof( $items ), '%s' );
|
1258 |
+
$item_types = $wpdb->prepare( " AND item_type IN(" . join( ',', $in_item_types ) . ") ", $items );
|
1259 |
+
} else {
|
1260 |
+
$item_types = '';
|
1261 |
+
}
|
1262 |
+
$query = $wpdb->prepare( "
|
1263 |
+
SELECT user_item_id, user_id, status, ref_id, item_id, item_type
|
1264 |
+
FROM (SELECT * FROM {$wpdb->prefix}learnpress_user_items ORDER BY item_id, user_item_id DESC) x
|
1265 |
+
GROUP BY item_id
|
1266 |
+
HAVING user_id = %d
|
1267 |
+
AND status = %s
|
1268 |
+
AND ref_id = %d
|
1269 |
+
AND item_id IN(" . join( ",", $course_items ) . ")
|
1270 |
+
" . $item_types . "
|
1271 |
+
", $user_id, 'completed', $this->id );
|
1272 |
+
$user_item_ids = $wpdb->get_col( $query );
|
1273 |
+
$completed_items[$key] = $user_item_ids;
|
1274 |
+
LP_Cache::set_completed_items( $completed_items );
|
1275 |
+
}
|
1276 |
+
return apply_filters( 'learn_press_user_completed_items', $completed_items[$key], $this->id, $user_id );
|
1277 |
+
}
|
1278 |
+
|
1279 |
+
/**
|
1280 |
+
* @param int $user_id
|
1281 |
+
* @param bool $force
|
1282 |
+
*
|
1283 |
+
* @return mixed|void
|
1284 |
+
*/
|
1285 |
+
public function count_completed_items( $user_id = 0, $force = false ) {
|
1286 |
+
$items = $this->get_completed_items( $user_id, $force );
|
1287 |
+
$count = 0;
|
1288 |
+
if ( $items ) {
|
1289 |
+
$count = sizeof( $items );
|
1290 |
+
}
|
1291 |
+
return apply_filters( 'learn_press_count_user_completed_items', $count, $this->id, $user_id );
|
1292 |
+
}
|
1293 |
+
|
1294 |
+
/**
|
1295 |
+
* Calculate results of course by final quiz
|
1296 |
+
*
|
1297 |
+
* @param int $user_id
|
1298 |
+
* @param boolean $force
|
1299 |
+
*
|
1300 |
+
* @return mixed|null|void
|
1301 |
+
*/
|
1302 |
+
public function _evaluate_course_by_quiz( $user_id, $force = false ) {
|
1303 |
+
global $wpdb;
|
1304 |
+
$result = $this->evaluate_quiz( $this->final_quiz, $user_id );
|
1305 |
+
return apply_filters( 'learn_press_evaluation_course_quiz', $result, $this->id, $user_id );
|
1306 |
+
}
|
1307 |
+
|
1308 |
+
public function evaluate_quiz( $quiz_id, $user_id, $force = false ) {
|
1309 |
+
$user = learn_press_get_user( $user_id );
|
1310 |
+
$quiz = LP_Quiz::get_quiz( $quiz_id );
|
1311 |
+
$results = $user->get_quiz_results( $quiz_id, $this->id );
|
1312 |
+
if ( !$results ) {
|
1313 |
+
$result = 0;
|
1314 |
+
} else {
|
1315 |
+
if ( $user->get_quiz_graduation( $quiz_id, $this->id ) == 'passed' && !empty( $results->mark_percent ) ) {
|
1316 |
+
$result = absint( $results->mark_percent );
|
1317 |
+
} else {
|
1318 |
+
$result = 0;
|
1319 |
+
}
|
1320 |
+
}
|
1321 |
+
return $result;
|
1322 |
+
}
|
1323 |
+
|
1324 |
+
|
1325 |
+
/**
|
1326 |
+
* Calculate results of course by avg of all quizzes
|
1327 |
+
*
|
1328 |
+
* @param int $user_id
|
1329 |
+
* @param boolean $force
|
1330 |
+
*
|
1331 |
+
* @return mixed
|
1332 |
+
*/
|
1333 |
+
public function _evaluate_course_by_quizzes( $user_id, $force = false ) {
|
1334 |
+
$quizzes = $this->get_quizzes();
|
1335 |
+
$result = 0;
|
1336 |
+
if ( $quizzes ) {
|
1337 |
+
foreach ( $quizzes as $quiz ) {
|
1338 |
+
$result += $this->evaluate_quiz( $quiz->ID, $user_id, $force );
|
1339 |
+
}
|
1340 |
+
$result = round( $result / sizeof( $quizzes ) );
|
1341 |
+
}
|
1342 |
+
return apply_filters( 'learn_press_evaluation_course_quizzes', $result, $this->id, $user_id );
|
1343 |
+
}
|
1344 |
+
|
1345 |
+
/**
|
1346 |
+
* Get content of course item
|
1347 |
+
*
|
1348 |
+
* @param $item_id
|
1349 |
+
*
|
1350 |
+
* @return string
|
1351 |
+
*/
|
1352 |
+
public function get_item_content( $item_id ) {
|
1353 |
+
global $post;
|
1354 |
+
$post = get_post( $item_id );
|
1355 |
+
|
1356 |
+
// setup global post to apply all filters hook to content
|
1357 |
+
setup_postdata( $post );
|
1358 |
+
|
1359 |
+
// do shortcode
|
1360 |
+
$content = do_shortcode( get_the_content() );
|
1361 |
+
|
1362 |
+
// restore post content
|
1363 |
+
wp_reset_postdata();
|
1364 |
+
return $content;
|
1365 |
+
}
|
1366 |
+
|
1367 |
+
/**
|
1368 |
+
* Get course duration in seconds
|
1369 |
+
*
|
1370 |
+
* @return int
|
1371 |
+
*/
|
1372 |
+
public function get_duration() {
|
1373 |
+
/**
|
1374 |
+
* Duration is in string such as 10 week, 4 hour, etc...
|
1375 |
+
* So we can use strtotime('+10 week') to convert it to seconds
|
1376 |
+
*/
|
1377 |
+
return strtotime( "+" . $this->duration, 0 );
|
1378 |
+
}
|
1379 |
+
|
1380 |
+
|
1381 |
+
/**
|
1382 |
+
* Get course remaining time message
|
1383 |
+
*
|
1384 |
+
* @param $user_id
|
1385 |
+
*
|
1386 |
+
* @return string
|
1387 |
+
*/
|
1388 |
+
public function get_user_duration_html( $user_id = 0 ) {
|
1389 |
+
if ( !$user_id ) {
|
1390 |
+
$user_id = get_current_user_id();
|
1391 |
+
}
|
1392 |
+
$duration = $this->get_duration();
|
1393 |
+
$user = learn_press_get_user( $user_id );
|
1394 |
+
$course_info = $user->get_course_info( $this->id );
|
1395 |
+
$html = '';
|
1396 |
+
if ( $course_info ) {
|
1397 |
+
$now = current_time( 'timestamp' );
|
1398 |
+
$start_time = intval( strtotime( $course_info['start'] ) );
|
1399 |
+
if ( $start_time + $duration > $now ) {
|
1400 |
+
$remain = $start_time + $duration - $now;
|
1401 |
+
$remain = learn_press_seconds_to_weeks( $remain );
|
1402 |
+
$html = sprintf( __( 'This course will end within %s next', 'learnpress' ), $remain );
|
1403 |
+
}
|
1404 |
+
}
|
1405 |
+
return $html;
|
1406 |
+
}
|
1407 |
+
|
1408 |
+
/**
|
1409 |
+
* Get expired time of this course if user has enrolled
|
1410 |
+
*
|
1411 |
+
* @param int $user_id
|
1412 |
+
*
|
1413 |
+
* @return mixed|null|void
|
1414 |
+
*/
|
1415 |
+
public function get_user_expired_time( $user_id = 0 ) {
|
1416 |
+
if ( !$user_id ) {
|
1417 |
+
$user_id = get_current_user_id();
|
1418 |
+
}
|
1419 |
+
$duration = $this->get_duration();
|
1420 |
+
$user = learn_press_get_user( $user_id );
|
1421 |
+
$course_info = $user->get_course_info( $this->id );
|
1422 |
+
$start_time = intval( strtotime( $course_info['start'] ) );
|
1423 |
+
if ( $duration == 0 ) {
|
1424 |
+
$duration = DAY_IN_SECONDS * 365 * 100;
|
1425 |
+
}
|
1426 |
+
$expired = $start_time + $duration;
|
1427 |
+
return apply_filters( 'learn_press_user_course_expired_time', $expired, $user_id, $this->id );
|
1428 |
+
}
|
1429 |
+
|
1430 |
+
/**
|
1431 |
+
* Checks if this course has expired
|
1432 |
+
*
|
1433 |
+
* @param int $user_id
|
1434 |
+
*
|
1435 |
+
* @return mixed|null|void
|
1436 |
+
*/
|
1437 |
+
public function is_expired( $user_id = 0 ) {
|
1438 |
+
if ( !$user_id ) {
|
1439 |
+
$user_id = get_current_user_id();
|
1440 |
+
}
|
1441 |
+
//echo "[".$this->get_user_expired_time( $user_id ), ',',current_time( 'timestamp' ),']';
|
1442 |
+
return apply_filters( 'learn_press_user_course_expired', $this->get_user_expired_time( $user_id ) - current_time( 'timestamp' ) );
|
1443 |
+
}
|
1444 |
+
|
1445 |
+
/**
|
1446 |
+
* Output params for single course page
|
1447 |
+
*
|
1448 |
+
* @param null $args
|
1449 |
+
*
|
1450 |
+
* @return mixed
|
1451 |
+
*/
|
1452 |
+
public function output_args( $args = null ) {
|
1453 |
+
|
1454 |
+
$args = wp_parse_args( $args, array( 'echo' => true, 'user_id' => get_current_user_id() ) );
|
1455 |
+
|
1456 |
+
$user = learn_press_get_user( $args['user_id'] );
|
1457 |
+
|
1458 |
+
$output = array(
|
1459 |
+
'id' => $this->id,
|
1460 |
+
'url' => $this->get_permalink(),
|
1461 |
+
'results' => $user->get_course_info( $this->id ),// $this->get_course_info( $args['user_id'] ),
|
1462 |
+
'current_item' => $this->is_viewing_item(),
|
1463 |
+
'items' => $this->get_items_params()
|
1464 |
+
);
|
1465 |
+
|
1466 |
+
$output = apply_filters( 'learn_press_single_course_params', $output, $this->id );
|
1467 |
+
LP_Assets::add_var( 'LP_Course_Params', wp_json_encode( $output ), 'learn-press-single-course' );
|
1468 |
+
|
1469 |
+
return $output;
|
1470 |
+
}
|
1471 |
+
|
1472 |
+
/**
|
1473 |
+
* Get items params for single course params
|
1474 |
+
*/
|
1475 |
+
public function get_items_params( $user_id = null ) {
|
1476 |
+
global $wpdb;
|
1477 |
+
$user = learn_press_get_current_user( $user_id );
|
1478 |
+
$items = $this->get_curriculum_items(
|
1479 |
+
array(
|
1480 |
+
'field' => array( 'item_id', 'item_type', 'post_title', 'section_id' ),
|
1481 |
+
'field_map' => array( 'id', 'type', 'title' ),
|
1482 |
+
'field_format' => array( '%d', '%s', '%s', '%d' )
|
1483 |
+
)
|
1484 |
+
);
|
1485 |
+
if ( $items ) foreach ( $items as $k => $item ) {
|
1486 |
+
if ( ( $view = $user->can( 'view-item', $item['id'] ) ) !== false ) {
|
1487 |
+
$items[$k]['url'] = $this->get_item_link( $item['id'] );
|
1488 |
+
$items[$k]['status'] = $user->get_item_status( $item['id'], $this->id );
|
1489 |
+
if ( $view == 'preview' ) {
|
1490 |
+
|
1491 |
+
}
|
1492 |
+
} else {
|
1493 |
+
$items[$k]['url'] = '';
|
1494 |
+
$items[$k]['status'] = '';
|
1495 |
+
}
|
1496 |
+
}
|
1497 |
+
|
1498 |
+
return $items;
|
1499 |
+
}
|
1500 |
+
|
1501 |
+
|
1502 |
+
public function get_video_embed() {
|
1503 |
+
$video_id = $this->video_id;
|
1504 |
+
$video_type = $this->video_type;
|
1505 |
+
|
1506 |
+
if ( !$video_id || !$video_type ) {
|
1507 |
+
return false;
|
1508 |
+
}
|
1509 |
+
|
1510 |
+
$embed = '';
|
1511 |
+
$height = $this->video_embed_height;
|
1512 |
+
$width = $this->video_embed_width;
|
1513 |
+
|
1514 |
+
if ( 'youtube' === $video_type ) {
|
1515 |
+
$embed = '<iframe width="' . $width . '" height="' . $height . '" '
|
1516 |
+
. 'src="https://www.youtube.com/embed/' . $video_id . '" '
|
1517 |
+
. 'frameborder="0" allowfullscreen></iframe>';
|
1518 |
+
|
1519 |
+
} elseif ( 'vimeo' === $video_type ) {
|
1520 |
+
$embed = '<iframe width="' . $width . '" height="' . $height . '" '
|
1521 |
+
. ' src="https://player.vimeo.com/video/' . $video_id . '" '
|
1522 |
+
. 'frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>';
|
1523 |
+
}
|
1524 |
+
|
1525 |
+
return $embed;
|
1526 |
+
}
|
1527 |
+
|
1528 |
}
|
inc/course/lp-course-functions.php
CHANGED
@@ -587,30 +587,17 @@ if ( !function_exists( 'learn_press_get_sample_link_course_item_url' ) ) {
|
|
587 |
return;
|
588 |
}
|
589 |
|
590 |
-
$permalink = get_the_permalink( $item_id );
|
591 |
-
$course_page_id = get_option( 'learn_press_courses_page_id' );
|
592 |
-
|
593 |
-
if ( !empty($course_page_id) && get_post( $course_page_id ) != false ) {
|
594 |
-
|
595 |
-
$post_types = get_post_types( null, 'objects' );
|
596 |
-
$item_type = get_post_type( $item_id );
|
597 |
-
$permalink = trailingslashit( get_the_permalink( $course_page_id ) );
|
598 |
-
$course_slug = basename( $permalink );
|
599 |
-
$permalink = str_replace( $course_slug, 'course/sample-course', $permalink );
|
600 |
-
$post_name = get_post_field( 'post_name', $item_id );
|
601 |
-
$prefix = preg_replace( '!^/!', '', trailingslashit( $post_types[$item_type]->rewrite['slug'] ) );
|
602 |
-
|
603 |
-
if ( '' != get_option( 'permalink_structure' ) && get_post_status( $course_page_id ) != 'draft' ) {
|
604 |
|
605 |
-
|
606 |
-
|
607 |
-
|
608 |
-
|
609 |
-
|
610 |
-
|
611 |
-
|
612 |
-
|
613 |
-
|
|
|
614 |
return $permalink;
|
615 |
|
616 |
}
|
587 |
return;
|
588 |
}
|
589 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
590 |
|
591 |
+
$permalink = get_the_permalink( $item_id );
|
592 |
+
$post_name = get_post_field( 'post_name', $item_id );
|
593 |
+
|
594 |
+
if ( '' != get_option( 'permalink_structure' ) ) {
|
595 |
+
$permalink = $post_name;
|
596 |
+
}
|
597 |
+
else {
|
598 |
+
$key = preg_replace( '!lp_!', '', get_post_type( $item_id ) );
|
599 |
+
$permalink = add_query_arg( array( $key => $post_name ), $permalink );
|
600 |
+
}
|
601 |
return $permalink;
|
602 |
|
603 |
}
|
inc/custom-post-types/abstract.php
CHANGED
@@ -247,6 +247,9 @@ abstract class LP_Abstract_Post_Type {
|
|
247 |
}
|
248 |
|
249 |
public function add_meta_boxes() {
|
|
|
|
|
|
|
250 |
do_action( 'learn_press_add_meta_boxes', $this->_post_type, $this );
|
251 |
do_action( "learn_press_{$this->_post_type}_add_meta_boxes", $this );
|
252 |
if ( !$this->_meta_boxes ) {
|
@@ -434,8 +437,8 @@ abstract class LP_Abstract_Post_Type {
|
|
434 |
$view_link = sprintf( ' <a href="%s">%s</a>', esc_url( $permalink ), sprintf( '%s %s', __( 'View', 'learnpress' ), $post_type_object->labels->singular_name ) );
|
435 |
switch ( $this->_post_type ) {
|
436 |
case LP_LESSON_CPT:
|
437 |
-
|
438 |
-
|
439 |
break;
|
440 |
case LP_ORDER_CPT:
|
441 |
$order = learn_press_get_order( $post->ID );
|
247 |
}
|
248 |
|
249 |
public function add_meta_boxes() {
|
250 |
+
if ( $this->_post_type != learn_press_get_requested_post_type() ) {
|
251 |
+
return;
|
252 |
+
}
|
253 |
do_action( 'learn_press_add_meta_boxes', $this->_post_type, $this );
|
254 |
do_action( "learn_press_{$this->_post_type}_add_meta_boxes", $this );
|
255 |
if ( !$this->_meta_boxes ) {
|
437 |
$view_link = sprintf( ' <a href="%s">%s</a>', esc_url( $permalink ), sprintf( '%s %s', __( 'View', 'learnpress' ), $post_type_object->labels->singular_name ) );
|
438 |
switch ( $this->_post_type ) {
|
439 |
case LP_LESSON_CPT:
|
440 |
+
case LP_QUIZ_CPT:
|
441 |
+
$view_link = learn_press_get_item_course_id( $post->ID, $post->post_type ) ? $view_link : '';
|
442 |
break;
|
443 |
case LP_ORDER_CPT:
|
444 |
$order = learn_press_get_order( $post->ID );
|
inc/custom-post-types/course.php
CHANGED
@@ -139,32 +139,32 @@ if ( !class_exists( 'LP_Course_Post_Type' ) ) {
|
|
139 |
|
140 |
if ( learn_press_get_user_option( 'course-tabs' ) == 'yes' ) {
|
141 |
?>
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
<a href="" id="complete-reorder-course-tabs"><?php _e( 'Ok', 'learnpress' ); ?></a>-->
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
|
151 |
<?php
|
152 |
} else {
|
153 |
if ( learn_press_get_user_option( 'hide-notice-switch-course-tabs' ) != 'yes' ) {
|
154 |
?>
|
155 |
-
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
<?php printf( '<a href="%s" class="learn-press-admin-notice-dismiss"></a>', add_query_arg( 'lp-hide-notice', 'switch-course-tabs', get_edit_post_link() ) ); ?>
|
162 |
-
|
163 |
<?php
|
164 |
}
|
165 |
?>
|
166 |
-
|
167 |
-
|
168 |
<?php
|
169 |
}
|
170 |
}
|
@@ -259,17 +259,43 @@ if ( !class_exists( 'LP_Course_Post_Type' ) ) {
|
|
259 |
|
260 |
public function update_course( $course_id ) {
|
261 |
global $wpdb;
|
262 |
-
$course_origin_author = get_post_field( 'post_author', $course_id );
|
263 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
264 |
if ( !empty( $_POST['_lp_course_author'] ) ) {
|
265 |
-
$
|
266 |
-
$wpdb->
|
267 |
-
|
268 |
-
|
269 |
-
|
270 |
-
|
271 |
-
|
272 |
-
$_POST['_lp_course_author'] = $_REQUEST['_lp_course_author'] = $course_origin_author;
|
273 |
}
|
274 |
}
|
275 |
|
@@ -327,7 +353,7 @@ if ( !class_exists( 'LP_Course_Post_Type' ) ) {
|
|
327 |
if ( empty( $post_id ) ) {
|
328 |
return;
|
329 |
}
|
330 |
-
|
331 |
if ( !empty( $_POST ) && learn_press_get_current_user()->is_instructor() && 'yes' == get_post_meta( $post_id, '_lp_submit_for_reviewer', true ) ) {
|
332 |
LP_Admin_Notice::add_redirect( __( 'Sorry! You can not update a course while it is viewing!', 'learnpress' ), 'error' );
|
333 |
wp_redirect( admin_url( 'post.php?post=' . $post_id . '&action=edit' ) );
|
@@ -363,9 +389,9 @@ if ( !class_exists( 'LP_Course_Post_Type' ) ) {
|
|
363 |
public function toggle_editor_button( $post ) {
|
364 |
if ( $post->post_type == LP_COURSE_CPT ) {
|
365 |
?>
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
<?php
|
370 |
}
|
371 |
}
|
@@ -489,24 +515,14 @@ if ( !class_exists( 'LP_Course_Post_Type' ) ) {
|
|
489 |
/**
|
490 |
* Add meta boxes to course post type page
|
491 |
*/
|
492 |
-
public
|
493 |
-
|
494 |
-
|
495 |
-
$user = wp_get_current_user();
|
496 |
-
//print_r($user);
|
497 |
-
|
498 |
-
$post_type_object = get_post_type_object( LP_COURSE_CPT );
|
499 |
-
//print_r($post_type_object);
|
500 |
-
|
501 |
-
if ( !self::$_VER2 ) {
|
502 |
-
new RW_Meta_Box( self::curriculum_meta_box() );
|
503 |
}
|
504 |
-
|
505 |
new RW_Meta_Box( self::settings_meta_box() );
|
506 |
new RW_Meta_Box( self::assessment_meta_box() );
|
507 |
-
|
508 |
new RW_Meta_Box( self::payment_meta_box() );
|
509 |
-
|
510 |
if ( self::$_enable_review ) {
|
511 |
$this->review_logs_meta_box();
|
512 |
}
|
@@ -522,8 +538,7 @@ if ( !class_exists( 'LP_Course_Post_Type' ) ) {
|
|
522 |
*
|
523 |
* @return mixed|null|void
|
524 |
*/
|
525 |
-
public
|
526 |
-
static function curriculum_meta_box() {
|
527 |
$prefix = '_lp_';
|
528 |
|
529 |
$meta_box = array(
|
@@ -678,20 +693,20 @@ if ( !class_exists( 'LP_Course_Post_Type' ) ) {
|
|
678 |
|
679 |
if ( current_user_can( 'manage_options' ) ) {
|
680 |
// $message = __( 'If free, this field is empty or set 0. (Only admin can edit this field)', 'learnpress' );
|
681 |
-
$message
|
682 |
-
$price
|
683 |
$sale_price = 0;
|
684 |
$start_date = '';
|
685 |
$end_date = '';
|
686 |
|
687 |
if ( isset( $_GET['post'] ) ) {
|
688 |
-
$course_id
|
689 |
|
690 |
if ( $payment != 'free' ) {
|
691 |
-
$suggest_price
|
692 |
-
$course
|
693 |
|
694 |
-
$author
|
695 |
|
696 |
if ( isset( $suggest_price ) && $author->roles[0] === 'lp_teacher' ) {
|
697 |
$message = sprintf( __( 'This course is requires enrollment and the suggested price is <strong>%s</strong>', 'learnpress' ), learn_press_format_price( $suggest_price, true ) );
|
@@ -744,14 +759,14 @@ if ( !class_exists( 'LP_Course_Post_Type' ) ) {
|
|
744 |
)
|
745 |
);
|
746 |
} else {
|
747 |
-
|
748 |
-
|
749 |
-
|
750 |
-
|
751 |
-
|
752 |
-
|
753 |
-
|
754 |
-
|
755 |
$meta_box['fields'][] = array(
|
756 |
'name' => __( 'Course Suggestion Price', 'learnpress' ),
|
757 |
'id' => "{$prefix}suggestion_price",
|
@@ -788,6 +803,10 @@ if ( !class_exists( 'LP_Course_Post_Type' ) ) {
|
|
788 |
public
|
789 |
static function author_meta_box() {
|
790 |
|
|
|
|
|
|
|
|
|
791 |
$prefix = '_lp_';
|
792 |
|
793 |
$include = array();
|
@@ -811,14 +830,14 @@ if ( !class_exists( 'LP_Course_Post_Type' ) ) {
|
|
811 |
'priority' => 'default',
|
812 |
'fields' => array(
|
813 |
array(
|
814 |
-
'name'
|
815 |
-
'id'
|
816 |
-
'desc'
|
817 |
-
'multiple'
|
818 |
-
'allowClear'
|
819 |
-
'type'
|
820 |
-
'
|
821 |
-
'
|
822 |
)
|
823 |
)
|
824 |
);
|
@@ -1134,9 +1153,9 @@ if ( !class_exists( 'LP_Course_Post_Type' ) ) {
|
|
1134 |
}
|
1135 |
} elseif ( $user->is_instructor() ) { // Course is submitted by instructor
|
1136 |
|
1137 |
-
|
1138 |
-
|
1139 |
-
|
1140 |
if ( ( $submit_for_review || ( $old_status != $new_status ) ) && $post->post_status != 'auto-draft' ) {
|
1141 |
$action = 'for_reviewer';
|
1142 |
update_post_meta( $post->ID, '_lp_submit_for_reviewer', 'yes' );
|
@@ -1227,7 +1246,7 @@ if ( !class_exists( 'LP_Course_Post_Type' ) ) {
|
|
1227 |
}
|
1228 |
|
1229 |
public
|
1230 |
-
|
1231 |
|
1232 |
global $post, $pagenow;
|
1233 |
|
139 |
|
140 |
if ( learn_press_get_user_option( 'course-tabs' ) == 'yes' ) {
|
141 |
?>
|
142 |
+
<ul id="course-tabs">
|
143 |
+
<li id="switch-course-metaboxes">
|
144 |
+
<!--<a href="" id="reorder-course-tabs"><?php _e( 'Reorder', 'learnpress' ); ?></a>
|
145 |
<a href="" id="complete-reorder-course-tabs"><?php _e( 'Ok', 'learnpress' ); ?></a>-->
|
146 |
+
<a href="<?php echo add_query_arg( 'switch-course-tabs', 'off', get_edit_post_link() ); ?>"><?php _e( 'Switch to meta boxes', 'learnpress' ); ?></a>
|
147 |
+
</li>
|
148 |
+
</ul>
|
149 |
+
<input type="hidden" id="course-tab" name="course-tab" value="<?php echo !empty( $_REQUEST['tab'] ) ? $_REQUEST['tab'] : ''; ?>" />
|
150 |
|
151 |
<?php
|
152 |
} else {
|
153 |
if ( learn_press_get_user_option( 'hide-notice-switch-course-tabs' ) != 'yes' ) {
|
154 |
?>
|
155 |
+
<div class="message updated learn-press-message">
|
156 |
+
<p><?php _e( 'Would you like to see the meta boxes in tabs style?', 'learnpress' ); ?></p>
|
157 |
+
<p>
|
158 |
+
<a class="button" href="<?php echo add_query_arg( 'switch-course-tabs', 'on', get_edit_post_link() ); ?>"><?php _e( 'Switch meta boxes to tabs', 'learnpress' ); ?></a>
|
159 |
+
<a class="button" href="<?php echo add_query_arg( 'lp-hide-notice', 'switch-course-tabs', get_edit_post_link() ); ?>"><?php _e( 'Hide', 'learnpress' ); ?></a>
|
160 |
+
</p>
|
161 |
<?php printf( '<a href="%s" class="learn-press-admin-notice-dismiss"></a>', add_query_arg( 'lp-hide-notice', 'switch-course-tabs', get_edit_post_link() ) ); ?>
|
162 |
+
</div>
|
163 |
<?php
|
164 |
}
|
165 |
?>
|
166 |
+
<a id="toggle-meta-boxes" href=""><?php _e( 'Toggle', 'learnpress' ); ?></a>
|
167 |
+
<a id="switch-course-tabs" href="<?php echo add_query_arg( 'switch-course-tabs', 'on', get_edit_post_link() ); ?>"><?php _e( 'Switch to tabs', 'learnpress' ); ?></a>
|
168 |
<?php
|
169 |
}
|
170 |
}
|
259 |
|
260 |
public function update_course( $course_id ) {
|
261 |
global $wpdb;
|
|
|
262 |
|
263 |
+
$course = LP_Course::get_course( $course_id );
|
264 |
+
$curriculum = $course->get_curriculum_items();
|
265 |
+
// course curriculum items / quiz items / questions of quiz
|
266 |
+
$item_ids = $quiz_ids = $question_ids = array();
|
267 |
+
|
268 |
+
// get curriculum item
|
269 |
+
foreach ( $curriculum as $item ) {
|
270 |
+
$item_ids[] = (int) $item->ID;
|
271 |
+
|
272 |
+
// filter quiz item
|
273 |
+
if ( get_post_type( $item->ID ) == LP_QUIZ_CPT ) {
|
274 |
+
$quiz_ids[] = $item->ID;
|
275 |
+
}
|
276 |
+
}
|
277 |
+
|
278 |
+
// get question items
|
279 |
+
foreach ( $quiz_ids as $quiz_id ) {
|
280 |
+
$quiz = LP_Quiz::get_quiz( $quiz_id );
|
281 |
+
$questions = $quiz->get_questions();
|
282 |
+
foreach ( $questions as $question ) {
|
283 |
+
$question_ids[] = $question->ID;
|
284 |
+
}
|
285 |
+
}
|
286 |
+
|
287 |
+
// merge all post type on course
|
288 |
+
$ids = array_merge( (array) $course_id, $item_ids, $question_ids );
|
289 |
+
|
290 |
+
// update post author
|
291 |
if ( !empty( $_POST['_lp_course_author'] ) ) {
|
292 |
+
foreach ( $ids as $id ) {
|
293 |
+
$wpdb->update(
|
294 |
+
$wpdb->posts,
|
295 |
+
array( 'post_author' => $_POST['_lp_course_author'] ),
|
296 |
+
array( 'ID' => $id )
|
297 |
+
);
|
298 |
+
}
|
|
|
299 |
}
|
300 |
}
|
301 |
|
353 |
if ( empty( $post_id ) ) {
|
354 |
return;
|
355 |
}
|
356 |
+
if ( self::$_enable_review ) {
|
357 |
if ( !empty( $_POST ) && learn_press_get_current_user()->is_instructor() && 'yes' == get_post_meta( $post_id, '_lp_submit_for_reviewer', true ) ) {
|
358 |
LP_Admin_Notice::add_redirect( __( 'Sorry! You can not update a course while it is viewing!', 'learnpress' ), 'error' );
|
359 |
wp_redirect( admin_url( 'post.php?post=' . $post_id . '&action=edit' ) );
|
389 |
public function toggle_editor_button( $post ) {
|
390 |
if ( $post->post_type == LP_COURSE_CPT ) {
|
391 |
?>
|
392 |
+
<button class="button button-primary"
|
393 |
+
data-hidden="<?php echo get_post_meta( $post->ID, '_lp_editor_hidden', true ); ?>" type="button"
|
394 |
+
id="learn-press-button-toggle-editor"><?php _e( 'Toggle Course Content', 'learnpress' ); ?></button>
|
395 |
<?php
|
396 |
}
|
397 |
}
|
515 |
/**
|
516 |
* Add meta boxes to course post type page
|
517 |
*/
|
518 |
+
public function add_meta_boxes() {
|
519 |
+
if ( LP_COURSE_CPT != learn_press_get_requested_post_type() ) {
|
520 |
+
return;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
521 |
}
|
522 |
+
new RW_Meta_Box( self::curriculum_meta_box() );
|
523 |
new RW_Meta_Box( self::settings_meta_box() );
|
524 |
new RW_Meta_Box( self::assessment_meta_box() );
|
|
|
525 |
new RW_Meta_Box( self::payment_meta_box() );
|
|
|
526 |
if ( self::$_enable_review ) {
|
527 |
$this->review_logs_meta_box();
|
528 |
}
|
538 |
*
|
539 |
* @return mixed|null|void
|
540 |
*/
|
541 |
+
public static function curriculum_meta_box() {
|
|
|
542 |
$prefix = '_lp_';
|
543 |
|
544 |
$meta_box = array(
|
693 |
|
694 |
if ( current_user_can( 'manage_options' ) ) {
|
695 |
// $message = __( 'If free, this field is empty or set 0. (Only admin can edit this field)', 'learnpress' );
|
696 |
+
$message = '';
|
697 |
+
$price = get_post_meta( $course_id, '_lp_price', true );
|
698 |
$sale_price = 0;
|
699 |
$start_date = '';
|
700 |
$end_date = '';
|
701 |
|
702 |
if ( isset( $_GET['post'] ) ) {
|
703 |
+
$course_id = $_GET['post'];
|
704 |
|
705 |
if ( $payment != 'free' ) {
|
706 |
+
$suggest_price = get_post_meta( $course_id, '_lp_suggestion_price', true );
|
707 |
+
$course = get_post( $course_id );
|
708 |
|
709 |
+
$author = get_userdata( $course->post_author );
|
710 |
|
711 |
if ( isset( $suggest_price ) && $author->roles[0] === 'lp_teacher' ) {
|
712 |
$message = sprintf( __( 'This course is requires enrollment and the suggested price is <strong>%s</strong>', 'learnpress' ), learn_press_format_price( $suggest_price, true ) );
|
759 |
)
|
760 |
);
|
761 |
} else {
|
762 |
+
$price = get_post_meta( $course_id, '_lp_price', true );
|
763 |
+
$meta_box['fields'][] = array(
|
764 |
+
'name' => __( 'Price set by Admin', 'learnpress' ),
|
765 |
+
'id' => "{$prefix}price",
|
766 |
+
'type' => 'html',
|
767 |
+
'class' => 'lp-course-price-field' . ( $payment != 'yes' ? ' hide-if-js' : '' ),
|
768 |
+
'html' => $price !== '' ? sprintf( '<strong>%s</strong>', learn_press_format_price( $price, true ) ) : __( 'Not set', 'learnpress' )
|
769 |
+
);
|
770 |
$meta_box['fields'][] = array(
|
771 |
'name' => __( 'Course Suggestion Price', 'learnpress' ),
|
772 |
'id' => "{$prefix}suggestion_price",
|
803 |
public
|
804 |
static function author_meta_box() {
|
805 |
|
806 |
+
$course_id = !empty( $_GET['post'] ) ? $_GET['post'] : 0;
|
807 |
+
|
808 |
+
$author = get_post( $course_id ) ? get_post( $course_id )->post_author : '';
|
809 |
+
|
810 |
$prefix = '_lp_';
|
811 |
|
812 |
$include = array();
|
830 |
'priority' => 'default',
|
831 |
'fields' => array(
|
832 |
array(
|
833 |
+
'name' => __( 'Author', 'learnpress' ),
|
834 |
+
'id' => "{$prefix}course_author",
|
835 |
+
'desc' => '',
|
836 |
+
'multiple' => false,
|
837 |
+
'allowClear' => false,
|
838 |
+
'type' => 'select',
|
839 |
+
'options' => $include,
|
840 |
+
'std' => $author
|
841 |
)
|
842 |
)
|
843 |
);
|
1153 |
}
|
1154 |
} elseif ( $user->is_instructor() ) { // Course is submitted by instructor
|
1155 |
|
1156 |
+
if ( $enable_edit_published && ( $old_status == $new_status && $new_status == 'publish' ) ) {
|
1157 |
+
$submit_for_review = false;
|
1158 |
+
}
|
1159 |
if ( ( $submit_for_review || ( $old_status != $new_status ) ) && $post->post_status != 'auto-draft' ) {
|
1160 |
$action = 'for_reviewer';
|
1161 |
update_post_meta( $post->ID, '_lp_submit_for_reviewer', 'yes' );
|
1246 |
}
|
1247 |
|
1248 |
public
|
1249 |
+
function before_save_curriculum() {
|
1250 |
|
1251 |
global $post, $pagenow;
|
1252 |
|
inc/custom-post-types/order.php
CHANGED
@@ -480,65 +480,8 @@ if ( !class_exists( 'LP_Order_Post_Type' ) ) {
|
|
480 |
* Register new post status for order
|
481 |
*/
|
482 |
public function register_post_statues() {
|
483 |
-
|
484 |
-
$
|
485 |
-
$lp_order_statuses['lp-completed'] = array(
|
486 |
-
'label' => _x( 'Completed', 'Order status', 'learnpress' ),
|
487 |
-
'public' => false,
|
488 |
-
'exclude_from_search' => false,
|
489 |
-
'show_in_admin_all_list' => true,
|
490 |
-
'show_in_admin_status_list' => true,
|
491 |
-
'label_count' => _n_noop( 'Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>', 'learnpress' )
|
492 |
-
);
|
493 |
-
$lp_order_statuses['lp-processing'] = array(
|
494 |
-
'label' => _x( 'Processing', 'Order status', 'learnpress' ),
|
495 |
-
'public' => false,
|
496 |
-
'exclude_from_search' => false,
|
497 |
-
'show_in_admin_all_list' => true,
|
498 |
-
'show_in_admin_status_list' => true,
|
499 |
-
'label_count' => _n_noop( 'Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'learnpress' )
|
500 |
-
);
|
501 |
-
$lp_order_statuses['lp-pending'] = array(
|
502 |
-
'label' => _x( 'Pending Payment', 'Order status', 'learnpress' ),
|
503 |
-
'public' => false,
|
504 |
-
'exclude_from_search' => false,
|
505 |
-
'show_in_admin_all_list' => true,
|
506 |
-
'show_in_admin_status_list' => true,
|
507 |
-
'label_count' => _n_noop( 'Pending Payment <span class="count">(%s)</span>', 'Pending Payment <span class="count">(%s)</span>', 'learnpress' )
|
508 |
-
);
|
509 |
-
$lp_order_statuses['lp-cancelled'] = array(
|
510 |
-
'label' => _x( 'Cancelled', 'Order status', 'learnpress' ),
|
511 |
-
'public' => false,
|
512 |
-
'exclude_from_search' => false,
|
513 |
-
'show_in_admin_all_list' => true,
|
514 |
-
'show_in_admin_status_list' => true,
|
515 |
-
'label_count' => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'learnpress' )
|
516 |
-
);
|
517 |
-
// $lp_order_statuses['lp-on-hold'] = array(
|
518 |
-
// 'label' => _x( 'On Hold', 'Order status', 'learnpress' ),
|
519 |
-
// 'public' => false,
|
520 |
-
// 'exclude_from_search' => false,
|
521 |
-
// 'show_in_admin_all_list' => true,
|
522 |
-
// 'show_in_admin_status_list' => true,
|
523 |
-
// 'label_count' => _n_noop( 'On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'learnpress' )
|
524 |
-
// );
|
525 |
-
// $lp_order_statuses['lp-refunded'] = array(
|
526 |
-
// 'label' => _x( 'Refunded', 'Order status', 'learnpress' ),
|
527 |
-
// 'public' => false,
|
528 |
-
// 'exclude_from_search' => false,
|
529 |
-
// 'show_in_admin_all_list' => true,
|
530 |
-
// 'show_in_admin_status_list' => true,
|
531 |
-
// 'label_count' => _n_noop( 'Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'learnpress' )
|
532 |
-
// );
|
533 |
-
// $lp_order_statuses['lp-failed'] = array(
|
534 |
-
// 'label' => _x( 'Failed', 'Order status', 'learnpress' ),
|
535 |
-
// 'public' => false,
|
536 |
-
// 'exclude_from_search' => false,
|
537 |
-
// 'show_in_admin_all_list' => true,
|
538 |
-
// 'show_in_admin_status_list' => true,
|
539 |
-
// 'label_count' => _n_noop( 'Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'learnpress' )
|
540 |
-
// );
|
541 |
-
foreach ( $lp_order_statuses as $status => $args ) {
|
542 |
register_post_status( $status, $args );
|
543 |
}
|
544 |
}
|
480 |
* Register new post status for order
|
481 |
*/
|
482 |
public function register_post_statues() {
|
483 |
+
$statuses = learn_press_get_register_order_statuses();
|
484 |
+
foreach ( $statuses as $status => $args ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
485 |
register_post_status( $status, $args );
|
486 |
}
|
487 |
}
|
inc/emails/class-lp-email-finished-course.php
CHANGED
@@ -61,12 +61,15 @@ if ( !class_exists( 'LP_Email_Finished_Course' ) ) {
|
|
61 |
|
62 |
$format = $this->email_format == 'plain_text' ? 'plain' : 'html';
|
63 |
$course = learn_press_get_course( $course_id );
|
|
|
|
|
|
|
64 |
|
65 |
$this->object = $this->get_common_template_data(
|
66 |
$format,
|
67 |
array(
|
68 |
'course_id' => $course_id,
|
69 |
-
'course_name' => $
|
70 |
'course_url' => get_the_permalink( $course_id ),
|
71 |
'user_id' => $user_id,
|
72 |
'user_name' => learn_press_get_profile_display_name( $user ),
|
61 |
|
62 |
$format = $this->email_format == 'plain_text' ? 'plain' : 'html';
|
63 |
$course = learn_press_get_course( $course_id );
|
64 |
+
remove_filter( 'the_title', 'wptexturize' );
|
65 |
+
$course_name = $course->get_title();
|
66 |
+
add_filter( 'the_title', 'wptexturize' );
|
67 |
|
68 |
$this->object = $this->get_common_template_data(
|
69 |
$format,
|
70 |
array(
|
71 |
'course_id' => $course_id,
|
72 |
+
'course_name' => $course_name,
|
73 |
'course_url' => get_the_permalink( $course_id ),
|
74 |
'user_id' => $user_id,
|
75 |
'user_name' => learn_press_get_profile_display_name( $user ),
|
inc/emails/class-lp-email.php
CHANGED
@@ -260,6 +260,10 @@ class LP_Email {
|
|
260 |
$this->enable = LP()->settings->get( 'emails_' . $this->id . '.enable' ) == 'yes';
|
261 |
}
|
262 |
|
|
|
|
|
|
|
|
|
263 |
public function __get( $key ) {
|
264 |
if ( !empty( $this->{$key} ) ) {
|
265 |
return $this->{$key};
|
@@ -353,7 +357,9 @@ class LP_Email {
|
|
353 |
$search = array_keys( $this->variables );
|
354 |
$replace = array_values( $this->variables );
|
355 |
}
|
356 |
-
|
|
|
|
|
357 |
}
|
358 |
|
359 |
public function get_recipient() {
|
@@ -375,12 +381,15 @@ class LP_Email {
|
|
375 |
$email_content = preg_replace( $this->text_search, $this->text_replace, $this->get_content_text_message() );
|
376 |
}
|
377 |
|
|
|
|
|
|
|
378 |
if ( is_array( $this->variables ) ) {
|
379 |
$search = array_keys( $this->variables );
|
380 |
$replace = array_values( $this->variables );
|
381 |
-
|
382 |
-
}
|
383 |
|
|
|
384 |
|
385 |
return wordwrap( $email_content, 70 );
|
386 |
}
|
260 |
$this->enable = LP()->settings->get( 'emails_' . $this->id . '.enable' ) == 'yes';
|
261 |
}
|
262 |
|
263 |
+
public function get_variables_support() {
|
264 |
+
return apply_filters( 'learn_press_email_variables_support', $this->support_variables, $this );
|
265 |
+
}
|
266 |
+
|
267 |
public function __get( $key ) {
|
268 |
if ( !empty( $this->{$key} ) ) {
|
269 |
return $this->{$key};
|
357 |
$search = array_keys( $this->variables );
|
358 |
$replace = array_values( $this->variables );
|
359 |
}
|
360 |
+
$search = apply_filters( 'learn_press_email_format_string_find', $search, $this );
|
361 |
+
$replace = apply_filters( 'learn_press_email_format_string_replace', $replace, $this );
|
362 |
+
return str_replace( $search, $replace, $string );
|
363 |
}
|
364 |
|
365 |
public function get_recipient() {
|
381 |
$email_content = preg_replace( $this->text_search, $this->text_replace, $this->get_content_text_message() );
|
382 |
}
|
383 |
|
384 |
+
/*$search = array();
|
385 |
+
$replace = array();
|
386 |
+
|
387 |
if ( is_array( $this->variables ) ) {
|
388 |
$search = array_keys( $this->variables );
|
389 |
$replace = array_values( $this->variables );
|
390 |
+
}*/
|
|
|
391 |
|
392 |
+
$email_content = $this->format_string( $email_content );
|
393 |
|
394 |
return wordwrap( $email_content, 70 );
|
395 |
}
|
inc/libraries/meta-box/inc/field.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<?php
|
2 |
-
if ( !
|
3 |
class RWMB_Field {
|
4 |
/**
|
5 |
* Add actions
|
@@ -131,10 +131,10 @@ if ( ! class_exists( 'RWMB_Field ' ) ) {
|
|
131 |
if ( 'hidden' === $field['type'] ) {
|
132 |
$classes[] = 'hidden';
|
133 |
}
|
134 |
-
if ( !
|
135 |
$classes[] = 'required';
|
136 |
}
|
137 |
-
if ( !
|
138 |
$classes[] = $field['class'];
|
139 |
}
|
140 |
|
@@ -167,6 +167,17 @@ if ( ! class_exists( 'RWMB_Field ' ) ) {
|
|
167 |
return '';
|
168 |
}
|
169 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
/**
|
171 |
* Show begin HTML markup for fields
|
172 |
*
|
@@ -176,6 +187,10 @@ if ( ! class_exists( 'RWMB_Field ' ) ) {
|
|
176 |
* @return string
|
177 |
*/
|
178 |
static function begin_html( $meta, $field ) {
|
|
|
|
|
|
|
|
|
179 |
if ( empty( $field['name'] ) ) {
|
180 |
return '<div class="rwmb-input">';
|
181 |
}
|
@@ -199,6 +214,10 @@ if ( ! class_exists( 'RWMB_Field ' ) ) {
|
|
199 |
* @return string
|
200 |
*/
|
201 |
static function end_html( $meta, $field ) {
|
|
|
|
|
|
|
|
|
202 |
$button = $field['clone'] ? call_user_func( array( RW_Meta_Box::get_class_name( $field ), 'add_clone_button' ) ) : '';
|
203 |
$desc = $field['desc'] ? "<p id='{$field['id']}_description' class='description'>{$field['desc']}</p>" : '';
|
204 |
|
@@ -236,10 +255,10 @@ if ( ! class_exists( 'RWMB_Field ' ) ) {
|
|
236 |
* @return mixed
|
237 |
*/
|
238 |
static function meta( $post_id, $saved, $field ) {
|
239 |
-
$meta = get_post_meta( $post_id, $field['id'],
|
240 |
|
241 |
// Use $field['std'] only when the meta box hasn't been saved (i.e. the first time we run)
|
242 |
-
$meta = (
|
243 |
|
244 |
// Escape attributes for non-wysiwyg fields
|
245 |
if ( 'wysiwyg' !== $field['type'] ) {
|
@@ -282,12 +301,12 @@ if ( ! class_exists( 'RWMB_Field ' ) ) {
|
|
282 |
|
283 |
if ( $field['multiple'] ) {
|
284 |
foreach ( $new as $new_value ) {
|
285 |
-
if ( !
|
286 |
add_post_meta( $post_id, $name, $new_value, false );
|
287 |
}
|
288 |
}
|
289 |
foreach ( $old as $old_value ) {
|
290 |
-
if ( !
|
291 |
delete_post_meta( $post_id, $name, $old_value );
|
292 |
}
|
293 |
}
|
1 |
<?php
|
2 |
+
if ( !class_exists( 'RWMB_Field ' ) ) {
|
3 |
class RWMB_Field {
|
4 |
/**
|
5 |
* Add actions
|
131 |
if ( 'hidden' === $field['type'] ) {
|
132 |
$classes[] = 'hidden';
|
133 |
}
|
134 |
+
if ( !empty( $field['required'] ) ) {
|
135 |
$classes[] = 'required';
|
136 |
}
|
137 |
+
if ( !empty( $field['class'] ) ) {
|
138 |
$classes[] = $field['class'];
|
139 |
}
|
140 |
|
167 |
return '';
|
168 |
}
|
169 |
|
170 |
+
static function _sanitize_args() {
|
171 |
+
$args = func_get_args();
|
172 |
+
$size = sizeof( $args );
|
173 |
+
if ( $size == 2 ) {
|
174 |
+
return array( $args[0], $args[1], '' );
|
175 |
+
} elseif ( $size == 3 ) {
|
176 |
+
return array( $args[1], $args[2], $args[0] );
|
177 |
+
}
|
178 |
+
return $args;
|
179 |
+
}
|
180 |
+
|
181 |
/**
|
182 |
* Show begin HTML markup for fields
|
183 |
*
|
187 |
* @return string
|
188 |
*/
|
189 |
static function begin_html( $meta, $field ) {
|
190 |
+
|
191 |
+
$args = call_user_func_array( array( __CLASS__, '_sanitize_args' ), func_get_args() );
|
192 |
+
list( $meta, $field, $html ) = $args;
|
193 |
+
|
194 |
if ( empty( $field['name'] ) ) {
|
195 |
return '<div class="rwmb-input">';
|
196 |
}
|
214 |
* @return string
|
215 |
*/
|
216 |
static function end_html( $meta, $field ) {
|
217 |
+
|
218 |
+
$args = call_user_func_array( array( __CLASS__, '_sanitize_args' ), func_get_args() );
|
219 |
+
list( $meta, $field, $html ) = $args;
|
220 |
+
|
221 |
$button = $field['clone'] ? call_user_func( array( RW_Meta_Box::get_class_name( $field ), 'add_clone_button' ) ) : '';
|
222 |
$desc = $field['desc'] ? "<p id='{$field['id']}_description' class='description'>{$field['desc']}</p>" : '';
|
223 |
|
255 |
* @return mixed
|
256 |
*/
|
257 |
static function meta( $post_id, $saved, $field ) {
|
258 |
+
$meta = get_post_meta( $post_id, $field['id'], !$field['multiple'] );
|
259 |
|
260 |
// Use $field['std'] only when the meta box hasn't been saved (i.e. the first time we run)
|
261 |
+
$meta = ( !$saved && '' === $meta || array() === $meta ) ? $field['std'] : $meta;
|
262 |
|
263 |
// Escape attributes for non-wysiwyg fields
|
264 |
if ( 'wysiwyg' !== $field['type'] ) {
|
301 |
|
302 |
if ( $field['multiple'] ) {
|
303 |
foreach ( $new as $new_value ) {
|
304 |
+
if ( !in_array( $new_value, $old ) ) {
|
305 |
add_post_meta( $post_id, $name, $new_value, false );
|
306 |
}
|
307 |
}
|
308 |
foreach ( $old as $old_value ) {
|
309 |
+
if ( !in_array( $old_value, $new ) ) {
|
310 |
delete_post_meta( $post_id, $name, $old_value );
|
311 |
}
|
312 |
}
|
inc/libraries/meta-box/meta-box.php
CHANGED
@@ -12,36 +12,39 @@ License: GPL2+
|
|
12 |
// Prevent loading this file directly
|
13 |
defined( 'ABSPATH' ) || exit;
|
14 |
|
15 |
-
|
16 |
-
define( 'RWMB_VER', '4.4.1' );
|
17 |
|
18 |
-
//
|
19 |
-
|
20 |
-
define( 'RWMB_URL', plugin_dir_url( __FILE__ ) );
|
21 |
-
}
|
22 |
-
define( 'RWMB_JS_URL', trailingslashit( RWMB_URL . 'js' ) );
|
23 |
-
define( 'RWMB_CSS_URL', trailingslashit( RWMB_URL . 'css' ) );
|
24 |
|
25 |
-
//
|
26 |
-
if ( !
|
27 |
-
|
28 |
-
}
|
29 |
-
define( '
|
30 |
-
define( '
|
31 |
|
32 |
-
//
|
33 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
|
35 |
-
// Helper function to retrieve meta value
|
36 |
-
require_once RWMB_INC_DIR . 'helpers.php';
|
37 |
|
38 |
-
|
39 |
-
|
|
|
40 |
}
|
41 |
|
42 |
if ( is_admin() ) {
|
43 |
//require_once RWMB_INC_DIR . 'common.php';
|
44 |
-
if(!class_exists('RWMB_Field')){
|
45 |
require_once LP_METABOX_INC . 'field.php';
|
46 |
}
|
47 |
// Field classes
|
@@ -51,7 +54,8 @@ if ( is_admin() ) {
|
|
51 |
|
52 |
// Main file
|
53 |
require_once LP_METABOX_INC . 'meta-box.php';
|
54 |
-
if(!function_exists('rwmb_register_meta_boxes')){
|
55 |
require_once LP_METABOX_INC . 'init.php';
|
56 |
}
|
57 |
}
|
|
12 |
// Prevent loading this file directly
|
13 |
defined( 'ABSPATH' ) || exit;
|
14 |
|
15 |
+
if ( !defined( 'RWMB_VER' ) ) {
|
|
|
16 |
|
17 |
+
// Script version, used to add version for scripts and styles
|
18 |
+
define( 'RWMB_VER', '4.4.1' );
|
|
|
|
|
|
|
|
|
19 |
|
20 |
+
// Define plugin URLs, for fast enqueuing scripts and styles
|
21 |
+
if ( !defined( 'RWMB_URL' ) ) {
|
22 |
+
define( 'RWMB_URL', plugin_dir_url( __FILE__ ) );
|
23 |
+
}
|
24 |
+
define( 'RWMB_JS_URL', trailingslashit( RWMB_URL . 'js' ) );
|
25 |
+
define( 'RWMB_CSS_URL', trailingslashit( RWMB_URL . 'css' ) );
|
26 |
|
27 |
+
// Plugin paths, for including files
|
28 |
+
if ( !defined( 'RWMB_DIR' ) ) {
|
29 |
+
define( 'RWMB_DIR', plugin_dir_path( __FILE__ ) );
|
30 |
+
}
|
31 |
+
define( 'RWMB_INC_DIR', trailingslashit( RWMB_DIR . 'inc' ) );
|
32 |
+
define( 'RWMB_FIELDS_DIR', trailingslashit( RWMB_INC_DIR . 'fields' ) );
|
33 |
+
|
34 |
+
// Optimize code for loading plugin files ONLY on admin side
|
35 |
+
// @see http://www.deluxeblogtips.com/?p=345
|
36 |
|
37 |
+
// Helper function to retrieve meta value
|
38 |
+
require_once RWMB_INC_DIR . 'helpers.php';
|
39 |
|
40 |
+
}
|
41 |
+
if ( !defined( 'LP_METABOX_INC' ) ) {
|
42 |
+
define( 'LP_METABOX_INC', LP_PLUGIN_PATH . 'inc/libraries/meta-box/inc/' );
|
43 |
}
|
44 |
|
45 |
if ( is_admin() ) {
|
46 |
//require_once RWMB_INC_DIR . 'common.php';
|
47 |
+
if ( !class_exists( 'RWMB_Field' ) ) {
|
48 |
require_once LP_METABOX_INC . 'field.php';
|
49 |
}
|
50 |
// Field classes
|
54 |
|
55 |
// Main file
|
56 |
require_once LP_METABOX_INC . 'meta-box.php';
|
57 |
+
if ( !function_exists( 'rwmb_register_meta_boxes' ) ) {
|
58 |
require_once LP_METABOX_INC . 'init.php';
|
59 |
}
|
60 |
}
|
61 |
+
do_action( 'learn_press_meta_box_loaded' );
|
inc/lp-constants.php
CHANGED
@@ -4,7 +4,7 @@
|
|
4 |
*/
|
5 |
$upload_dir = wp_upload_dir();
|
6 |
// version
|
7 |
-
define( 'LEARNPRESS_VERSION', '2.1.
|
8 |
|
9 |
define( 'LP_WP_CONTENT', basename( WP_CONTENT_DIR ) );
|
10 |
|
4 |
*/
|
5 |
$upload_dir = wp_upload_dir();
|
6 |
// version
|
7 |
+
define( 'LEARNPRESS_VERSION', '2.1.2' );
|
8 |
|
9 |
define( 'LP_WP_CONTENT', basename( WP_CONTENT_DIR ) );
|
10 |
|
inc/lp-core-functions.php
CHANGED
@@ -197,7 +197,7 @@ function learn_press_sanitize_url( $url, $trailingslashit = true ) {
|
|
197 |
$url_without_http = $matches[2];
|
198 |
$url_without_http = preg_replace( '![/]+!', '/', $url_without_http );
|
199 |
$url = $matches[1] . $url_without_http;
|
200 |
-
return $trailingslashit ? trailingslashit( $url ) : untrailingslashit( $url );
|
201 |
}
|
202 |
return $url;
|
203 |
}
|
@@ -479,12 +479,12 @@ if ( !function_exists( 'learn_press_advertise_in_admin' ) ) {
|
|
479 |
$theme['description'] = implode( " ", $theme['description'] ) . " ...";
|
480 |
?>
|
481 |
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
|
487 |
-
|
488 |
|
489 |
<div class="theme-detail">
|
490 |
<h2><a href="<?php echo esc_url( $theme['url'] ); ?>"><?php echo $theme['name']; ?></a></h2>
|
@@ -2182,8 +2182,7 @@ function learn_press_user_profile_link( $user_id = 0, $tab = null ) {
|
|
2182 |
} else {
|
2183 |
if ( is_numeric( $user_id ) ) {
|
2184 |
$user = get_user_by( 'id', $user_id );
|
2185 |
-
}
|
2186 |
-
else {
|
2187 |
$user = get_user_by( 'login', $user_id );
|
2188 |
}
|
2189 |
}
|
@@ -2648,6 +2647,17 @@ function learn_press_is_added_to_cart( $course_id ) {
|
|
2648 |
return $cart->has_item( $course_id );
|
2649 |
}
|
2650 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2651 |
/**
|
2652 |
* Create some warning messages:
|
2653 |
* + LP Profile page is not setup
|
197 |
$url_without_http = $matches[2];
|
198 |
$url_without_http = preg_replace( '![/]+!', '/', $url_without_http );
|
199 |
$url = $matches[1] . $url_without_http;
|
200 |
+
return ( $trailingslashit && strpos( $url, '?' ) === false ) ? trailingslashit( $url ) : untrailingslashit( $url );
|
201 |
}
|
202 |
return $url;
|
203 |
}
|
479 |
$theme['description'] = implode( " ", $theme['description'] ) . " ...";
|
480 |
?>
|
481 |
|
482 |
+
<div id="thimpress-<?php echo esc_attr( $theme['id'] ); ?>" class="item">
|
483 |
+
<div class="theme-thumbnail">
|
484 |
+
<a href="<?php echo esc_url( $theme['url'] ); ?>">
|
485 |
+
<img src="<?php echo esc_url( $theme['previews']['landscape_preview']['landscape_url'] ) ?>" />
|
486 |
+
</a>
|
487 |
+
</div>
|
488 |
|
489 |
<div class="theme-detail">
|
490 |
<h2><a href="<?php echo esc_url( $theme['url'] ); ?>"><?php echo $theme['name']; ?></a></h2>
|
2182 |
} else {
|
2183 |
if ( is_numeric( $user_id ) ) {
|
2184 |
$user = get_user_by( 'id', $user_id );
|
2185 |
+
} else {
|
|
|
2186 |
$user = get_user_by( 'login', $user_id );
|
2187 |
}
|
2188 |
}
|
2647 |
return $cart->has_item( $course_id );
|
2648 |
}
|
2649 |
|
2650 |
+
function learn_press_get_requested_post_type() {
|
2651 |
+
global $pagenow;
|
2652 |
+
if ( $pagenow == 'post-new.php' && !empty( $_GET['post_type'] ) ) {
|
2653 |
+
$post_type = $_REQUEST['post_type'];
|
2654 |
+
} else {
|
2655 |
+
$post_id = learn_press_get_post();
|
2656 |
+
$post_type = get_post_type( $post_id );
|
2657 |
+
}
|
2658 |
+
return $post_type;
|
2659 |
+
}
|
2660 |
+
|
2661 |
/**
|
2662 |
* Create some warning messages:
|
2663 |
* + LP Profile page is not setup
|
inc/order/lp-order-functions.php
CHANGED
@@ -497,10 +497,10 @@ function learn_press_get_orders( $args = array() ) {
|
|
497 |
$args['meta_query'][] = $meta_query;
|
498 |
}
|
499 |
|
500 |
-
$args
|
501 |
-
|
502 |
if ( $orders ) {
|
503 |
-
|
504 |
}
|
505 |
|
506 |
return apply_filters( 'learn_press_get_orders', $orders, $args );
|
@@ -650,7 +650,14 @@ function learn_press_get_order_status_label( $order_id = 0 ) {
|
|
650 |
}
|
651 |
|
652 |
function learn_press_get_order_statuses( $prefix = true ) {
|
653 |
-
$prefix
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
654 |
$order_statuses = array(
|
655 |
$prefix . 'pending' => _x( 'Pending', 'Order status', 'learnpress' ),
|
656 |
$prefix . 'processing' => _x( 'Processing', 'Order status', 'learnpress' ),
|
@@ -659,11 +666,72 @@ function learn_press_get_order_statuses( $prefix = true ) {
|
|
659 |
// $prefix . 'refunded' => _x( 'Refunded', 'Order status', 'learnpress' ),
|
660 |
// $prefix . 'failed' => _x( 'Failed', 'Order status', 'learnpress' ),
|
661 |
// $prefix . 'on-hold' => _x( 'On Hold', 'Order status', 'learnpress' ),
|
662 |
-
|
663 |
|
664 |
return apply_filters( 'learn_press_order_statuses', $order_statuses );
|
665 |
}
|
666 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
667 |
function _learn_press_get_order_status_description( $status ) {
|
668 |
static $descriptions = null;
|
669 |
$descriptions = array(
|
@@ -721,16 +789,16 @@ function _learn_press_checkout_auto_enroll_free_course( $result, $order_id ) {
|
|
721 |
}
|
722 |
|
723 |
if ( !function_exists( '_learn_press_total_raised' ) ) {
|
724 |
-
|
725 |
-
|
726 |
-
|
727 |
-
|
728 |
-
|
729 |
-
|
730 |
-
|
731 |
-
|
732 |
-
|
733 |
-
|
734 |
-
|
735 |
-
|
736 |
}
|
497 |
$args['meta_query'][] = $meta_query;
|
498 |
}
|
499 |
|
500 |
+
$args = apply_filters( 'learn_press_get_orders_get_posts_args', $args );
|
501 |
+
$orders = get_posts( $args );
|
502 |
if ( $orders ) {
|
503 |
+
// do somethings
|
504 |
}
|
505 |
|
506 |
return apply_filters( 'learn_press_get_orders', $orders, $args );
|
650 |
}
|
651 |
|
652 |
function learn_press_get_order_statuses( $prefix = true ) {
|
653 |
+
$prefix = $prefix ? 'lp-' : '';
|
654 |
+
/*$register_statues = learn_press_get_register_order_statuses();
|
655 |
+
$order_statuses= array();
|
656 |
+
foreach($register_statues as $k => $v){
|
657 |
+
if($prefix){
|
658 |
+
|
659 |
+
}
|
660 |
+
}*/
|
661 |
$order_statuses = array(
|
662 |
$prefix . 'pending' => _x( 'Pending', 'Order status', 'learnpress' ),
|
663 |
$prefix . 'processing' => _x( 'Processing', 'Order status', 'learnpress' ),
|
666 |
// $prefix . 'refunded' => _x( 'Refunded', 'Order status', 'learnpress' ),
|
667 |
// $prefix . 'failed' => _x( 'Failed', 'Order status', 'learnpress' ),
|
668 |
// $prefix . 'on-hold' => _x( 'On Hold', 'Order status', 'learnpress' ),
|
669 |
+
);
|
670 |
|
671 |
return apply_filters( 'learn_press_order_statuses', $order_statuses );
|
672 |
}
|
673 |
|
674 |
+
function learn_press_get_register_order_statuses() {
|
675 |
+
$order_statues = array();
|
676 |
+
$order_statues['lp-completed'] = array(
|
677 |
+
'label' => _x( 'Completed', 'Order status', 'learnpress' ),
|
678 |
+
'public' => false,
|
679 |
+
'exclude_from_search' => false,
|
680 |
+
'show_in_admin_all_list' => true,
|
681 |
+
'show_in_admin_status_list' => true,
|
682 |
+
'label_count' => _n_noop( 'Completed <span class="count">(%s)</span>', 'Completed <span class="count">(%s)</span>', 'learnpress' )
|
683 |
+
);
|
684 |
+
$order_statues['lp-processing'] = array(
|
685 |
+
'label' => _x( 'Processing', 'Order status', 'learnpress' ),
|
686 |
+
'public' => false,
|
687 |
+
'exclude_from_search' => false,
|
688 |
+
'show_in_admin_all_list' => true,
|
689 |
+
'show_in_admin_status_list' => true,
|
690 |
+
'label_count' => _n_noop( 'Processing <span class="count">(%s)</span>', 'Processing <span class="count">(%s)</span>', 'learnpress' )
|
691 |
+
);
|
692 |
+
$order_statues['lp-pending'] = array(
|
693 |
+
'label' => _x( 'Pending Payment', 'Order status', 'learnpress' ),
|
694 |
+
'public' => false,
|
695 |
+
'exclude_from_search' => false,
|
696 |
+
'show_in_admin_all_list' => true,
|
697 |
+
'show_in_admin_status_list' => true,
|
698 |
+
'label_count' => _n_noop( 'Pending Payment <span class="count">(%s)</span>', 'Pending Payment <span class="count">(%s)</span>', 'learnpress' )
|
699 |
+
);
|
700 |
+
$order_statues['lp-cancelled'] = array(
|
701 |
+
'label' => _x( 'Cancelled', 'Order status', 'learnpress' ),
|
702 |
+
'public' => false,
|
703 |
+
'exclude_from_search' => false,
|
704 |
+
'show_in_admin_all_list' => true,
|
705 |
+
'show_in_admin_status_list' => true,
|
706 |
+
'label_count' => _n_noop( 'Cancelled <span class="count">(%s)</span>', 'Cancelled <span class="count">(%s)</span>', 'learnpress' )
|
707 |
+
);
|
708 |
+
// $lp_order_statuses['lp-on-hold'] = array(
|
709 |
+
// 'label' => _x( 'On Hold', 'Order status', 'learnpress' ),
|
710 |
+
// 'public' => false,
|
711 |
+
// 'exclude_from_search' => false,
|
712 |
+
// 'show_in_admin_all_list' => true,
|
713 |
+
// 'show_in_admin_status_list' => true,
|
714 |
+
// 'label_count' => _n_noop( 'On Hold <span class="count">(%s)</span>', 'On Hold <span class="count">(%s)</span>', 'learnpress' )
|
715 |
+
// );
|
716 |
+
// $lp_order_statuses['lp-refunded'] = array(
|
717 |
+
// 'label' => _x( 'Refunded', 'Order status', 'learnpress' ),
|
718 |
+
// 'public' => false,
|
719 |
+
// 'exclude_from_search' => false,
|
720 |
+
// 'show_in_admin_all_list' => true,
|
721 |
+
// 'show_in_admin_status_list' => true,
|
722 |
+
// 'label_count' => _n_noop( 'Refunded <span class="count">(%s)</span>', 'Refunded <span class="count">(%s)</span>', 'learnpress' )
|
723 |
+
// );
|
724 |
+
// $lp_order_statuses['lp-failed'] = array(
|
725 |
+
// 'label' => _x( 'Failed', 'Order status', 'learnpress' ),
|
726 |
+
// 'public' => false,
|
727 |
+
// 'exclude_from_search' => false,
|
728 |
+
// 'show_in_admin_all_list' => true,
|
729 |
+
// 'show_in_admin_status_list' => true,
|
730 |
+
// 'label_count' => _n_noop( 'Failed <span class="count">(%s)</span>', 'Failed <span class="count">(%s)</span>', 'learnpress' )
|
731 |
+
// );
|
732 |
+
return $order_statues;
|
733 |
+
}
|
734 |
+
|
735 |
function _learn_press_get_order_status_description( $status ) {
|
736 |
static $descriptions = null;
|
737 |
$descriptions = array(
|
789 |
}
|
790 |
|
791 |
if ( !function_exists( '_learn_press_total_raised' ) ) {
|
792 |
+
function _learn_press_total_raised() {
|
793 |
+
$orders = learn_press_get_orders( array( 'post_status' => 'lp-completed' ) );
|
794 |
+
$total = 0;
|
795 |
+
if ( $orders ) {
|
796 |
+
foreach ( $orders as $order ) {
|
797 |
+
$order = learn_press_get_order( $order->ID );
|
798 |
+
$total = $total + $order->order_total;
|
799 |
+
}
|
800 |
+
}
|
801 |
+
|
802 |
+
return apply_filters( '_learn_press_total_raised', learn_press_format_price( $total, true ), $total );
|
803 |
+
}
|
804 |
}
|
inc/user/abstract-lp-user.php
CHANGED
@@ -951,10 +951,10 @@ class LP_Abstract_User {
|
|
951 |
}
|
952 |
|
953 |
}
|
954 |
-
$user
|
955 |
-
$history
|
956 |
$current_question_id = learn_press_get_user_item_meta( $history->history_id, 'lp_current_question_after_close', true );
|
957 |
-
if ( !empty($current_question_id) ) {
|
958 |
$question_id = $current_question_id;
|
959 |
}
|
960 |
|
@@ -1123,9 +1123,9 @@ class LP_Abstract_User {
|
|
1123 |
/**
|
1124 |
* Return true if user can enroll a course
|
1125 |
*
|
1126 |
-
* @param
|
1127 |
*
|
1128 |
-
* @return bool
|
1129 |
*/
|
1130 |
public function can_enroll_course( $course_id ) {
|
1131 |
# condition
|
@@ -1139,6 +1139,8 @@ class LP_Abstract_User {
|
|
1139 |
$enrollable = false;
|
1140 |
} elseif ( !$course->is_required_enroll() ) {
|
1141 |
$enrollable = false;
|
|
|
|
|
1142 |
} elseif ( $course->is_free() && $this->is_exists() ) {
|
1143 |
$enrollable = true;
|
1144 |
} elseif ( $course->is_purchasable() && ( $this->has_purchased_course( $course_id ) ) ) {
|
951 |
}
|
952 |
|
953 |
}
|
954 |
+
$user = learn_press_get_current_user();
|
955 |
+
$history = $user->get_quiz_results( $quiz_id, $course_id, true );
|
956 |
$current_question_id = learn_press_get_user_item_meta( $history->history_id, 'lp_current_question_after_close', true );
|
957 |
+
if ( !empty( $current_question_id ) ) {
|
958 |
$question_id = $current_question_id;
|
959 |
}
|
960 |
|
1123 |
/**
|
1124 |
* Return true if user can enroll a course
|
1125 |
*
|
1126 |
+
* @param $course_id
|
1127 |
*
|
1128 |
+
* @return bool|string
|
1129 |
*/
|
1130 |
public function can_enroll_course( $course_id ) {
|
1131 |
# condition
|
1139 |
$enrollable = false;
|
1140 |
} elseif ( !$course->is_required_enroll() ) {
|
1141 |
$enrollable = false;
|
1142 |
+
} elseif ( !$course->is_purchasable() ) {
|
1143 |
+
$enrollable = 'enough';
|
1144 |
} elseif ( $course->is_free() && $this->is_exists() ) {
|
1145 |
$enrollable = true;
|
1146 |
} elseif ( $course->is_purchasable() && ( $this->has_purchased_course( $course_id ) ) ) {
|
inc/user/class-lp-user-factory.php
CHANGED
@@ -108,7 +108,7 @@ class LP_User_Factory {
|
|
108 |
* @param $the_user
|
109 |
* @param bool $force
|
110 |
*
|
111 |
-
* @return
|
112 |
*/
|
113 |
public static function get_user( $the_user, $force = false ) {
|
114 |
if ( is_numeric( $the_user ) ) {
|
108 |
* @param $the_user
|
109 |
* @param bool $force
|
110 |
*
|
111 |
+
* @return LP_Abstract_User
|
112 |
*/
|
113 |
public static function get_user( $the_user, $force = false ) {
|
114 |
if ( is_numeric( $the_user ) ) {
|
languages/learnpress-es_ES.mo
ADDED
Binary file
|
languages/learnpress-es_ES.po
ADDED
@@ -0,0 +1,5640 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# SOME DESCRIPTIVE TITLE.
|
2 |
+
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
3 |
+
# This file is distributed under the same license as the PACKAGE package.
|
4 |
+
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
5 |
+
#
|
6 |
+
msgid ""
|
7 |
+
msgstr ""
|
8 |
+
"Project-Id-Version: \n"
|
9 |
+
"Report-Msgid-Bugs-To: \n"
|
10 |
+
"POT-Creation-Date: 2017-01-08 10:37+0100\n"
|
11 |
+
"PO-Revision-Date: 2017-01-16 10:16+0100\n"
|
12 |
+
"Language-Team: \n"
|
13 |
+
"MIME-Version: 1.0\n"
|
14 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
15 |
+
"Content-Transfer-Encoding: 8bit\n"
|
16 |
+
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
|
17 |
+
"X-Generator: Poedit 1.8.9\n"
|
18 |
+
"Last-Translator: \n"
|
19 |
+
"Language: es\n"
|
20 |
+
|
21 |
+
#: inc/class-lp-ajax.php:101
|
22 |
+
msgid "Invalid course"
|
23 |
+
msgstr "Curso Inválido"
|
24 |
+
|
25 |
+
#: inc/class-lp-ajax.php:113
|
26 |
+
#, php-format
|
27 |
+
msgid "You have enrolled in this course <strong>%s</strong>"
|
28 |
+
msgstr "Estás inscrito en este curso <strong>%s</strong>"
|
29 |
+
|
30 |
+
#: inc/class-lp-ajax.php:116
|
31 |
+
#, php-format
|
32 |
+
msgid ""
|
33 |
+
"Sorry! The course <strong>%s</strong> you want to enroll has failed! Please "
|
34 |
+
"contact site's administrator for more information."
|
35 |
+
msgstr ""
|
36 |
+
"¡ Lo siento! El curso <strong>%s</strong> al que deseas inscribirse ha "
|
37 |
+
"fallado! Para más información por favor póngase en contacto con "
|
38 |
+
"administrador del sitio."
|
39 |
+
|
40 |
+
#: inc/class-lp-ajax.php:142
|
41 |
+
msgid "Please enter username"
|
42 |
+
msgstr "Por favor, introduce tu nombre de usuario"
|
43 |
+
|
44 |
+
#: inc/class-lp-ajax.php:146
|
45 |
+
msgid "Please enter password"
|
46 |
+
msgstr "Introduce una contraseña"
|
47 |
+
|
48 |
+
#: inc/class-lp-ajax.php:194
|
49 |
+
msgid "Please enter your username and/or password"
|
50 |
+
msgstr "Ingresa tu nombre de usuario y contraseña."
|
51 |
+
|
52 |
+
#: inc/class-lp-ajax.php:212
|
53 |
+
#, php-format
|
54 |
+
msgid "Welcome back, %s. You've already enrolled this course"
|
55 |
+
msgstr "Bienvenido de nuevo, %s. Ya te has inscrito este curso"
|
56 |
+
|
57 |
+
#: inc/class-lp-ajax.php:224
|
58 |
+
#, php-format
|
59 |
+
msgid "Welcome back, %s! Redirecting..."
|
60 |
+
msgstr "Bienvenido de nuevo, %s! Redirigiendo ..."
|
61 |
+
|
62 |
+
#: inc/class-lp-ajax.php:260
|
63 |
+
msgid "Access denied!"
|
64 |
+
msgstr "Acceso denegado!"
|
65 |
+
|
66 |
+
#: inc/class-lp-ajax.php:268
|
67 |
+
#, php-format
|
68 |
+
msgid "You have finished this course \"%s\""
|
69 |
+
msgstr "Has completado el curso \"%s\""
|
70 |
+
|
71 |
+
#: inc/class-lp-ajax.php:273
|
72 |
+
msgid ""
|
73 |
+
"Error! You cannot finish this course. Please contact your administrator for "
|
74 |
+
"more information."
|
75 |
+
msgstr ""
|
76 |
+
"¡Error! No puedes finalizar este curso. Por favor, contacta con tu "
|
77 |
+
"administrador para más información."
|
78 |
+
|
79 |
+
#: inc/class-lp-ajax.php:292
|
80 |
+
msgid "Bad request!"
|
81 |
+
msgstr "Solicitud incorrecta!"
|
82 |
+
|
83 |
+
#: inc/class-lp-ajax.php:297
|
84 |
+
msgid "Error while completing lesson."
|
85 |
+
msgstr "Error al completar la lección."
|
86 |
+
|
87 |
+
#: inc/class-lp-ajax.php:299
|
88 |
+
msgid "You have completed lesson."
|
89 |
+
msgstr "Has completado esta lección."
|
90 |
+
|
91 |
+
#: inc/class-lp-ajax.php:387
|
92 |
+
msgid "Load question error. Try again!"
|
93 |
+
msgstr "Error. Por favor, vuelve a intentarlo."
|
94 |
+
|
95 |
+
#: inc/class-lp-ajax.php:395
|
96 |
+
msgid "Something is wrong. Try again!"
|
97 |
+
msgstr "Algo está mal, por favor, inténtelo de nuevo."
|
98 |
+
|
99 |
+
#: inc/class-lp-ajax.php:446
|
100 |
+
msgid "Something went wrong. Please try again!"
|
101 |
+
msgstr "Algo salió mal. Vuelve a intentarlo."
|
102 |
+
|
103 |
+
#: inc/class-lp-ajax.php:494 inc/class-lp-ajax.php:537
|
104 |
+
msgid "Error! Invalid lesson or security checked failure"
|
105 |
+
msgstr "¡Error! Lección inválida o fallo en la comprobación de seguridad"
|
106 |
+
|
107 |
+
#: inc/class-lp-ajax.php:501 inc/admin/lp-admin-functions.php:930
|
108 |
+
#: inc/admin/views/statistics/orders.php:63
|
109 |
+
#: templates/content-lesson/__complete-button.php:43
|
110 |
+
#: templates/single-course/content-item-lp_lesson.php:24
|
111 |
+
#: templates/single-course/section/item-meta.php:34
|
112 |
+
msgid "Completed"
|
113 |
+
msgstr "Completado"
|
114 |
+
|
115 |
+
#: inc/class-lp-ajax.php:508
|
116 |
+
msgid ""
|
117 |
+
"Congratulations! You have completed this lesson and you can finish course."
|
118 |
+
msgstr ""
|
119 |
+
"¡ Felicidades! Has completado esta lección, y puedes terminar el curso."
|
120 |
+
|
121 |
+
#: inc/class-lp-ajax.php:510
|
122 |
+
msgid "Congratulations! You have completed this lesson."
|
123 |
+
msgstr "¡Felicidades! Has aprobado esta lección."
|
124 |
+
|
125 |
+
#: inc/class-lp-ajax.php:541
|
126 |
+
msgid "Error!"
|
127 |
+
msgstr "Error!"
|
128 |
+
|
129 |
+
#: inc/class-lp-ajax.php:543
|
130 |
+
#, php-format
|
131 |
+
msgid "You have retaken course \"%s\""
|
132 |
+
msgstr "Has repetido el Curso %s"
|
133 |
+
|
134 |
+
#: inc/class-lp-ajax.php:548
|
135 |
+
msgid "Error! You can not retake course"
|
136 |
+
msgstr "¡Error! No se puede volver a tomar curso"
|
137 |
+
|
138 |
+
#: inc/class-lp-ajax.php:560
|
139 |
+
msgid "The quiz ID is empty"
|
140 |
+
msgstr "El ID del cuestionario está vacío"
|
141 |
+
|
142 |
+
#: inc/class-lp-ajax.php:572
|
143 |
+
msgid "Something is wrong! Please try again"
|
144 |
+
msgstr "Algo está mal, por favor, inténtalo de nuevo."
|
145 |
+
|
146 |
+
#: inc/class-lp-ajax.php:581
|
147 |
+
msgid "Please login to take this quiz"
|
148 |
+
msgstr "Inicie sesión para ver este cuestionario"
|
149 |
+
|
150 |
+
#: inc/class-lp-ajax.php:592
|
151 |
+
msgid "You have completed this quiz"
|
152 |
+
msgstr "Has completado el examen"
|
153 |
+
|
154 |
+
#: inc/class-lp-ajax.php:601
|
155 |
+
msgid "You have started this quiz"
|
156 |
+
msgstr "Has iniciado este examen"
|
157 |
+
|
158 |
+
#: inc/class-lp-assets.php:791
|
159 |
+
msgid "Password and confirmation password do not match"
|
160 |
+
msgstr "La nueva contraseña y la confirmación de contraseña no coinciden."
|
161 |
+
|
162 |
+
#: inc/class-lp-assets.php:792
|
163 |
+
msgid "This field is required"
|
164 |
+
msgstr "El campo es obligatorio."
|
165 |
+
|
166 |
+
#: inc/class-lp-breadcrumb.php:124
|
167 |
+
msgid "Error 404"
|
168 |
+
msgstr "Error 404"
|
169 |
+
|
170 |
+
#: inc/class-lp-breadcrumb.php:216
|
171 |
+
#, php-format
|
172 |
+
msgid "Products tagged “%s”"
|
173 |
+
msgstr "Productos con la etiqueta “%s”"
|
174 |
+
|
175 |
+
#: inc/class-lp-breadcrumb.php:267
|
176 |
+
#, php-format
|
177 |
+
msgid "Posts tagged “%s”"
|
178 |
+
msgstr "Posts etiquetados “%s”"
|
179 |
+
|
180 |
+
#: inc/class-lp-breadcrumb.php:309
|
181 |
+
#, php-format
|
182 |
+
msgid "Author: %s"
|
183 |
+
msgstr "Autor: %s"
|
184 |
+
|
185 |
+
#: inc/class-lp-breadcrumb.php:342
|
186 |
+
#, php-format
|
187 |
+
msgid "Search results for “%s”"
|
188 |
+
msgstr "Resultados de la búsqueda : “%s”"
|
189 |
+
|
190 |
+
#: inc/class-lp-breadcrumb.php:351
|
191 |
+
#, php-format
|
192 |
+
msgid "Page %d"
|
193 |
+
msgstr "Página %d"
|
194 |
+
|
195 |
+
#: inc/class-lp-checkout.php:55 templates/checkout/form-login.php:40
|
196 |
+
msgid "Username"
|
197 |
+
msgstr "Nombre de usuario"
|
198 |
+
|
199 |
+
#: inc/class-lp-checkout.php:56 templates/checkout/form-login.php:44
|
200 |
+
msgid "Password"
|
201 |
+
msgstr "Contraseña"
|
202 |
+
|
203 |
+
#: inc/class-lp-checkout.php:96 inc/class-lp-checkout.php:105
|
204 |
+
#: inc/class-lp-checkout.php:122
|
205 |
+
#, php-format
|
206 |
+
msgid "Error %d: Unable to create order. Please try again."
|
207 |
+
msgstr "Error %d: Imposible crear la órden. Por favor, inténtelo de nuevo."
|
208 |
+
|
209 |
+
#: inc/class-lp-checkout.php:117
|
210 |
+
msgid "Item does not exists!"
|
211 |
+
msgstr "Este artículo no existe!"
|
212 |
+
|
213 |
+
#: inc/class-lp-checkout.php:167
|
214 |
+
msgid "Please enter user login"
|
215 |
+
msgstr "Por favor, introduce tu nombre de usuario"
|
216 |
+
|
217 |
+
#: inc/class-lp-checkout.php:171
|
218 |
+
msgid "Please enter user password"
|
219 |
+
msgstr "Por favor, introduce contraseña de usuario"
|
220 |
+
|
221 |
+
#: inc/class-lp-checkout.php:221
|
222 |
+
msgid "Please select a payment method"
|
223 |
+
msgstr "Selecciona tu método de pago"
|
224 |
+
|
225 |
+
#: inc/class-lp-checkout.php:247
|
226 |
+
#, php-format
|
227 |
+
msgid "Item %s does not exists."
|
228 |
+
msgstr "Artículo %s no existe."
|
229 |
+
|
230 |
+
#: inc/class-lp-checkout.php:249
|
231 |
+
#, php-format
|
232 |
+
msgid "Item \"%s\" is not purchasable."
|
233 |
+
msgstr "Artículo \"%s\" no se puede comprar."
|
234 |
+
|
235 |
+
#: inc/class-lp-checkout.php:260
|
236 |
+
msgid "Invalid payment method."
|
237 |
+
msgstr "Método de pago no válido."
|
238 |
+
|
239 |
+
#: inc/class-lp-emails.php:42 inc/class-lp-emails.php:49
|
240 |
+
msgid "Cheatin’ huh?"
|
241 |
+
msgstr "Haciendo trampa; ¿eh?"
|
242 |
+
|
243 |
+
#: inc/class-lp-install.php:89
|
244 |
+
msgid ""
|
245 |
+
"It seems like you have updated LearnPress from an older version and there "
|
246 |
+
"are some outdated courses or data that need to be upgraded."
|
247 |
+
msgstr ""
|
248 |
+
"Parece haber actualizado LearnPress de una versión anterior y hay algunos "
|
249 |
+
"cursos obsoletos o datos que necesitan ser actualizados."
|
250 |
+
|
251 |
+
#: inc/class-lp-install.php:90
|
252 |
+
msgid "Do not ask again."
|
253 |
+
msgstr "No volver a preguntar."
|
254 |
+
|
255 |
+
#: inc/class-lp-install.php:90 inc/custom-post-types/course.php:145
|
256 |
+
msgid "Ok"
|
257 |
+
msgstr ""
|
258 |
+
|
259 |
+
#: inc/class-lp-install.php:90 inc/lp-core-functions.php:1859
|
260 |
+
#: inc/admin/class-lp-admin-ajax.php:851 inc/admin/class-lp-admin.php:114
|
261 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:48
|
262 |
+
#: inc/custom-post-types/course.php:735 templates/profile/tabs/edit.php:79
|
263 |
+
#: templates/profile/tabs/orders.php:30
|
264 |
+
msgid "Cancel"
|
265 |
+
msgstr "Cancelar"
|
266 |
+
|
267 |
+
#: inc/class-lp-install.php:91
|
268 |
+
msgid "Upgrade now"
|
269 |
+
msgstr "Actualiza ahora"
|
270 |
+
|
271 |
+
#: inc/class-lp-install.php:91
|
272 |
+
msgid "No, thank!"
|
273 |
+
msgstr "No, gracias!"
|
274 |
+
|
275 |
+
#: inc/class-lp-install.php:98
|
276 |
+
msgid ""
|
277 |
+
"LearnPress has upgraded and need to upgrade the database before you can work "
|
278 |
+
"with it. Please notify the site administrator."
|
279 |
+
msgstr ""
|
280 |
+
"Memtoría Online se ha actualizado y necesita actualizar la base de datos "
|
281 |
+
"antes de que usted puede trabajar con él. Por favor notifique al "
|
282 |
+
"administrador del sitio."
|
283 |
+
|
284 |
+
#: inc/class-lp-install.php:114
|
285 |
+
msgid "Thank you for using LearnPress"
|
286 |
+
msgstr "Gracias por usar Mentoría online"
|
287 |
+
|
288 |
+
#: inc/class-lp-multi-language.php:51 inc/libraries/meta-box/inc/common.php:48
|
289 |
+
msgid "Documentation"
|
290 |
+
msgstr "Documentación"
|
291 |
+
|
292 |
+
#: inc/class-lp-multi-language.php:52 inc/admin/class-lp-admin-menu.php:70
|
293 |
+
#: inc/admin/class-lp-admin-menu.php:71
|
294 |
+
msgid "Add-ons"
|
295 |
+
msgstr "Complementos"
|
296 |
+
|
297 |
+
#: inc/class-lp-shortcodes.php:158 inc/class-lp-shortcodes.php:330
|
298 |
+
msgid "Invalid order!"
|
299 |
+
msgstr "Pedido no válido."
|
300 |
+
|
301 |
+
#: inc/class-lp-shortcodes.php:209
|
302 |
+
msgid "Please login to fill in this form."
|
303 |
+
msgstr "Inicia sesión para rellenar este formulario."
|
304 |
+
|
305 |
+
#: inc/class-lp-shortcodes.php:212
|
306 |
+
msgid "You are a teacher now."
|
307 |
+
msgstr "Eres un mentor ahora."
|
308 |
+
|
309 |
+
#: inc/class-lp-shortcodes.php:215 inc/lp-core-functions.php:1302
|
310 |
+
msgid "Your request has been sent! We will get in touch with you soon!"
|
311 |
+
msgstr "¡Tu solicitud ha sido enviada! ¡Nos pondremos en contacto pronto!"
|
312 |
+
|
313 |
+
#: inc/class-lp-shortcodes.php:218
|
314 |
+
msgid "Your role is allowed to create a course."
|
315 |
+
msgstr "Tu rol te permite crear un curso"
|
316 |
+
|
317 |
+
#: inc/class-lp-shortcodes.php:230
|
318 |
+
msgid "Become a Teacher"
|
319 |
+
msgstr "Convertirte en mentor"
|
320 |
+
|
321 |
+
#: inc/class-lp-shortcodes.php:231
|
322 |
+
msgid "Fill in your information and send us to become a teacher."
|
323 |
+
msgstr "Rellena tus datos y envíenoslo para convertirse en un mentor"
|
324 |
+
|
325 |
+
#: inc/class-lp-shortcodes.php:232 templates/global/become-teacher-form.php:13
|
326 |
+
msgid "Submit"
|
327 |
+
msgstr "Enviar"
|
328 |
+
|
329 |
+
#: inc/class-lp-shortcodes.php:233 templates/checkout/payment.php:16
|
330 |
+
msgid "Processing"
|
331 |
+
msgstr "Procesando"
|
332 |
+
|
333 |
+
#: inc/class-lp-shortcodes.php:239 templates/profile/tabs/edit.php:92
|
334 |
+
msgid "Name"
|
335 |
+
msgstr "Nombre"
|
336 |
+
|
337 |
+
#: inc/class-lp-shortcodes.php:241
|
338 |
+
msgid "Your name"
|
339 |
+
msgstr "Tu nombre"
|
340 |
+
|
341 |
+
#: inc/class-lp-shortcodes.php:245
|
342 |
+
msgid "Email"
|
343 |
+
msgstr ""
|
344 |
+
|
345 |
+
#: inc/class-lp-shortcodes.php:247
|
346 |
+
msgid "Your email address"
|
347 |
+
msgstr "Tu Email"
|
348 |
+
|
349 |
+
#: inc/class-lp-shortcodes.php:251
|
350 |
+
msgid "Phone"
|
351 |
+
msgstr "Teléfono"
|
352 |
+
|
353 |
+
#: inc/class-lp-shortcodes.php:253
|
354 |
+
msgid "Your phone number"
|
355 |
+
msgstr "Tu teléfono"
|
356 |
+
|
357 |
+
#: inc/class-lp-shortcodes.php:289
|
358 |
+
#, php-format
|
359 |
+
msgid "The user %s is not available!"
|
360 |
+
msgstr "El usuario %s no está disponible!"
|
361 |
+
|
362 |
+
#: inc/class-lp-shortcodes.php:363
|
363 |
+
msgid "Forgot password?"
|
364 |
+
msgstr "¿Contraseña olvidada?"
|
365 |
+
|
366 |
+
#: inc/class-lp-shortcodes.php:365
|
367 |
+
msgid "Create new account"
|
368 |
+
msgstr "Crear nueva cuenta"
|
369 |
+
|
370 |
+
#: inc/lp-add-on-functions.php:90
|
371 |
+
#, php-format
|
372 |
+
msgid "Installed <span class=\"count\">(%s)</span>"
|
373 |
+
msgstr ""
|
374 |
+
|
375 |
+
#: inc/lp-add-on-functions.php:95
|
376 |
+
#, php-format
|
377 |
+
msgid "Add-ons <span class=\"count\">(%s)</span>"
|
378 |
+
msgstr ""
|
379 |
+
|
380 |
+
#: inc/lp-add-on-functions.php:100
|
381 |
+
#, php-format
|
382 |
+
msgid "Related Themes <span class=\"count\">(%s)</span>"
|
383 |
+
msgstr ""
|
384 |
+
|
385 |
+
#: inc/lp-add-on-functions.php:118 inc/lp-core-functions.php:2177
|
386 |
+
#: inc/lp-core-functions.php:2707 inc/admin/lp-admin-actions.php:50
|
387 |
+
#: inc/admin/lp-admin-functions.php:558 inc/admin/lp-admin-functions.php:723
|
388 |
+
#: inc/admin/lp-admin-functions.php:925 inc/admin/sub-menus/tools.php:321
|
389 |
+
#: inc/admin/views/statistics/courses.php:27
|
390 |
+
#: inc/admin/views/statistics/courses.php:42
|
391 |
+
#: inc/admin/views/statistics/orders.php:28
|
392 |
+
#: inc/admin/views/statistics/orders.php:62
|
393 |
+
#: inc/admin/views/statistics/users.php:27
|
394 |
+
#: inc/admin/views/statistics/users.php:42
|
395 |
+
msgid "All"
|
396 |
+
msgstr "Todo"
|
397 |
+
|
398 |
+
#: inc/lp-add-on-functions.php:132
|
399 |
+
msgid "Get More"
|
400 |
+
msgstr "Obtener más"
|
401 |
+
|
402 |
+
#: inc/lp-add-on-functions.php:307
|
403 |
+
msgid ""
|
404 |
+
"An unexpected error occurred. Something may be wrong with WordPress.org or "
|
405 |
+
"this server’s configuration. If you continue to have problems, please "
|
406 |
+
"try the <a href=\"https://wordpress.org/support/\">support forums</a>."
|
407 |
+
msgstr ""
|
408 |
+
|
409 |
+
#: inc/lp-add-on-functions.php:307
|
410 |
+
msgid ""
|
411 |
+
"(WordPress could not establish a secure connection to WordPress.org. Please "
|
412 |
+
"contact your server administrator.)"
|
413 |
+
msgstr ""
|
414 |
+
|
415 |
+
#: inc/lp-add-on-functions.php:426
|
416 |
+
#, php-format
|
417 |
+
msgid "Installing Plugin: %s"
|
418 |
+
msgstr ""
|
419 |
+
|
420 |
+
#: inc/lp-add-on-functions.php:440
|
421 |
+
msgid "Not install"
|
422 |
+
msgstr "No Instalado"
|
423 |
+
|
424 |
+
#: inc/lp-add-on-functions.php:445 inc/admin/lp-admin-functions.php:1342
|
425 |
+
msgid "Installed"
|
426 |
+
msgstr "Instalado"
|
427 |
+
|
428 |
+
#: inc/lp-add-on-functions.php:455 inc/lp-add-on-functions.php:481
|
429 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:420
|
430 |
+
msgid "Enabled"
|
431 |
+
msgstr "Habilitado"
|
432 |
+
|
433 |
+
#: inc/lp-add-on-functions.php:455 inc/lp-add-on-functions.php:481
|
434 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:422
|
435 |
+
msgid "Disabled"
|
436 |
+
msgstr "No activado"
|
437 |
+
|
438 |
+
#: inc/lp-add-on-functions.php:503
|
439 |
+
msgid "All add-ons that you have installed"
|
440 |
+
msgstr "Todos los complementos que se han instalado"
|
441 |
+
|
442 |
+
#: inc/lp-add-on-functions.php:513 inc/lp-add-on-functions.php:562
|
443 |
+
msgid "All add-ons we provide."
|
444 |
+
msgstr "Todos los add-ons"
|
445 |
+
|
446 |
+
#: inc/lp-add-on-functions.php:514 inc/lp-add-on-functions.php:563
|
447 |
+
#, php-format
|
448 |
+
msgid "Last checked %s ago"
|
449 |
+
msgstr "Última comprobación hace %s."
|
450 |
+
|
451 |
+
#: inc/lp-add-on-functions.php:515 inc/lp-add-on-functions.php:564
|
452 |
+
#, php-format
|
453 |
+
msgid "<a href=\"%s\">%s</a>"
|
454 |
+
msgstr ""
|
455 |
+
|
456 |
+
#: inc/lp-add-on-functions.php:515 inc/lp-add-on-functions.php:564
|
457 |
+
msgid "Check again!"
|
458 |
+
msgstr "Comprobar de nuevo!"
|
459 |
+
|
460 |
+
#: inc/lp-add-on-functions.php:710
|
461 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:362
|
462 |
+
#, php-format
|
463 |
+
msgid "Install %s now"
|
464 |
+
msgstr ""
|
465 |
+
|
466 |
+
#: inc/lp-add-on-functions.php:710
|
467 |
+
msgid "Install Now"
|
468 |
+
msgstr ""
|
469 |
+
|
470 |
+
#: inc/lp-add-on-functions.php:717
|
471 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:369
|
472 |
+
#, php-format
|
473 |
+
msgid "Update %s now"
|
474 |
+
msgstr ""
|
475 |
+
|
476 |
+
#: inc/lp-add-on-functions.php:717
|
477 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:369
|
478 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:17
|
479 |
+
msgid "Update Now"
|
480 |
+
msgstr ""
|
481 |
+
|
482 |
+
#: inc/lp-add-on-functions.php:723
|
483 |
+
msgid "This plugin is already installed and is up to date"
|
484 |
+
msgstr ""
|
485 |
+
|
486 |
+
#: inc/lp-add-on-functions.php:723
|
487 |
+
msgctxt "plugin"
|
488 |
+
msgid "Installed"
|
489 |
+
msgstr ""
|
490 |
+
|
491 |
+
#: inc/lp-add-on-functions.php:728 inc/lp-add-on-functions.php:737
|
492 |
+
#, php-format
|
493 |
+
msgid "Disable %s now"
|
494 |
+
msgstr ""
|
495 |
+
|
496 |
+
#: inc/lp-add-on-functions.php:728 inc/lp-add-on-functions.php:737
|
497 |
+
msgid "Disable Now"
|
498 |
+
msgstr ""
|
499 |
+
|
500 |
+
#: inc/lp-add-on-functions.php:730 inc/lp-add-on-functions.php:739
|
501 |
+
#, php-format
|
502 |
+
msgid "Enable %s now"
|
503 |
+
msgstr ""
|
504 |
+
|
505 |
+
#: inc/lp-add-on-functions.php:730 inc/lp-add-on-functions.php:739
|
506 |
+
msgid "Enable Now"
|
507 |
+
msgstr "Habilitar de nuevo"
|
508 |
+
|
509 |
+
#: inc/lp-add-on-functions.php:743
|
510 |
+
#, php-format
|
511 |
+
msgid "Buy %s now"
|
512 |
+
msgstr "Comprar %s ahora"
|
513 |
+
|
514 |
+
#: inc/lp-add-on-functions.php:743 inc/lp-add-on-functions.php:901
|
515 |
+
msgid "Buy Now"
|
516 |
+
msgstr "Comprar"
|
517 |
+
|
518 |
+
#: inc/lp-add-on-functions.php:747
|
519 |
+
#, php-format
|
520 |
+
msgid "Version: %s"
|
521 |
+
msgstr "Versión %s"
|
522 |
+
|
523 |
+
#: inc/lp-add-on-functions.php:755 inc/lp-add-on-functions.php:765
|
524 |
+
msgid "No add-on found"
|
525 |
+
msgstr "No se han encontrado complementos"
|
526 |
+
|
527 |
+
#: inc/lp-add-on-functions.php:805
|
528 |
+
msgid "Free Add-ons"
|
529 |
+
msgstr ""
|
530 |
+
|
531 |
+
#: inc/lp-add-on-functions.php:830 inc/lp-add-on-functions.php:929
|
532 |
+
#, php-format
|
533 |
+
msgid "<cite>By %s</cite>"
|
534 |
+
msgstr "<cite>Por %s</cite>"
|
535 |
+
|
536 |
+
#: inc/lp-add-on-functions.php:846
|
537 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:454
|
538 |
+
msgid "Last Updated:"
|
539 |
+
msgstr ""
|
540 |
+
|
541 |
+
#: inc/lp-add-on-functions.php:847
|
542 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:455
|
543 |
+
#: inc/custom-post-types/order.php:355
|
544 |
+
#, php-format
|
545 |
+
msgid "%s ago"
|
546 |
+
msgstr "hace %s"
|
547 |
+
|
548 |
+
#: inc/lp-add-on-functions.php:855
|
549 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:461
|
550 |
+
msgctxt "Active plugin installs"
|
551 |
+
msgid "1+ Million"
|
552 |
+
msgstr ""
|
553 |
+
|
554 |
+
#: inc/lp-add-on-functions.php:859
|
555 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:465
|
556 |
+
#, php-format
|
557 |
+
msgid "%s Active Installs"
|
558 |
+
msgstr "%s Instalaciones Activas"
|
559 |
+
|
560 |
+
#: inc/lp-add-on-functions.php:867
|
561 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:471
|
562 |
+
msgid "Untested with your version of WordPress"
|
563 |
+
msgstr ""
|
564 |
+
|
565 |
+
#: inc/lp-add-on-functions.php:869
|
566 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:473
|
567 |
+
msgid "<strong>Incompatible</strong> with your version of WordPress"
|
568 |
+
msgstr ""
|
569 |
+
|
570 |
+
#: inc/lp-add-on-functions.php:871
|
571 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:475
|
572 |
+
msgid "<strong>Compatible</strong> with your version of WordPress"
|
573 |
+
msgstr ""
|
574 |
+
|
575 |
+
#: inc/lp-add-on-functions.php:884
|
576 |
+
msgid "Premium Add-ons"
|
577 |
+
msgstr ""
|
578 |
+
|
579 |
+
#: inc/lp-add-on-functions.php:940
|
580 |
+
msgid "No theme found"
|
581 |
+
msgstr ""
|
582 |
+
|
583 |
+
#: inc/lp-add-on-functions.php:963
|
584 |
+
msgid "$"
|
585 |
+
msgstr ""
|
586 |
+
|
587 |
+
#: inc/lp-add-on-functions.php:966
|
588 |
+
msgid " sales"
|
589 |
+
msgstr " ventas"
|
590 |
+
|
591 |
+
#: inc/lp-add-on-functions.php:982
|
592 |
+
msgid "Get it now for only "
|
593 |
+
msgstr "Consíguelo ahora por sólo "
|
594 |
+
|
595 |
+
#: inc/lp-add-on-functions.php:983
|
596 |
+
msgid "View Demo"
|
597 |
+
msgstr "Ver Demostración"
|
598 |
+
|
599 |
+
#: inc/lp-core-functions.php:234 inc/lp-template-functions.php:1395
|
600 |
+
#: inc/course/lp-course-functions.php:484 inc/custom-post-types/lesson.php:60
|
601 |
+
msgid "Lesson"
|
602 |
+
msgstr "Lección"
|
603 |
+
|
604 |
+
#: inc/lp-core-functions.php:235 inc/lp-template-functions.php:1385
|
605 |
+
#: inc/admin/settings/class-lp-settings-pages.php:22
|
606 |
+
#: inc/course/lp-course-functions.php:485
|
607 |
+
#: inc/custom-post-types/question.php:244 inc/custom-post-types/quiz.php:90
|
608 |
+
msgid "Quiz"
|
609 |
+
msgstr "Examen"
|
610 |
+
|
611 |
+
#: inc/lp-core-functions.php:562
|
612 |
+
msgid "<"
|
613 |
+
msgstr ""
|
614 |
+
|
615 |
+
#: inc/lp-core-functions.php:563
|
616 |
+
msgid ">"
|
617 |
+
msgstr ""
|
618 |
+
|
619 |
+
#: inc/lp-core-functions.php:661
|
620 |
+
msgid "Minute(s)"
|
621 |
+
msgstr "Minuto(s)"
|
622 |
+
|
623 |
+
#: inc/lp-core-functions.php:662
|
624 |
+
msgid "Hour(s)"
|
625 |
+
msgstr "Hora(s)"
|
626 |
+
|
627 |
+
#: inc/lp-core-functions.php:663
|
628 |
+
msgid "Day(s)"
|
629 |
+
msgstr "Día(s)"
|
630 |
+
|
631 |
+
#: inc/lp-core-functions.php:664
|
632 |
+
msgid "Week(s)"
|
633 |
+
msgstr "Semana(s)"
|
634 |
+
|
635 |
+
#: inc/lp-core-functions.php:724 inc/lp-template-functions.php:698
|
636 |
+
#: inc/admin/class-lp-profile.php:77 inc/admin/lp-admin-functions.php:299
|
637 |
+
#: inc/admin/settings/class-lp-settings-courses.php:9
|
638 |
+
#: inc/admin/sub-menus/statistics.php:50 inc/admin/sub-menus/statistics.php:56
|
639 |
+
#: inc/custom-post-types/course.php:451 inc/custom-post-types/course.php:453
|
640 |
+
msgid "Courses"
|
641 |
+
msgstr "Cursos"
|
642 |
+
|
643 |
+
#: inc/lp-core-functions.php:730 inc/custom-post-types/course.php:1301
|
644 |
+
msgid "Categories"
|
645 |
+
msgstr "Categorías"
|
646 |
+
|
647 |
+
#: inc/lp-core-functions.php:735 inc/custom-post-types/course.php:244
|
648 |
+
msgid "Tags"
|
649 |
+
msgstr "Etiquetas"
|
650 |
+
|
651 |
+
#: inc/lp-core-functions.php:903
|
652 |
+
msgid "Left"
|
653 |
+
msgstr "Izquierdo"
|
654 |
+
|
655 |
+
#: inc/lp-core-functions.php:904
|
656 |
+
msgid "Right"
|
657 |
+
msgstr "Derecha"
|
658 |
+
|
659 |
+
#: inc/lp-core-functions.php:905
|
660 |
+
msgid "Left with space"
|
661 |
+
msgstr "Izquierda con espacio"
|
662 |
+
|
663 |
+
#: inc/lp-core-functions.php:906
|
664 |
+
msgid "Right with space"
|
665 |
+
msgstr "Derecho con el espacio"
|
666 |
+
|
667 |
+
#: inc/lp-core-functions.php:1174
|
668 |
+
msgid "week(s)"
|
669 |
+
msgstr "semana(s)"
|
670 |
+
|
671 |
+
#: inc/lp-core-functions.php:1178
|
672 |
+
msgid "day(s)"
|
673 |
+
msgstr "día(s)"
|
674 |
+
|
675 |
+
#: inc/lp-core-functions.php:1183
|
676 |
+
msgid "hour(s)"
|
677 |
+
msgstr "hora(s)"
|
678 |
+
|
679 |
+
#: inc/lp-core-functions.php:1187
|
680 |
+
msgid "min(s)"
|
681 |
+
msgstr "min(s)"
|
682 |
+
|
683 |
+
#: inc/lp-core-functions.php:1275
|
684 |
+
msgid "Please enter your name"
|
685 |
+
msgstr "Por favor, dinos tu nombre:"
|
686 |
+
|
687 |
+
#: inc/lp-core-functions.php:1280
|
688 |
+
msgid "Please enter your email address"
|
689 |
+
msgstr "Por favor, introduce un correo electrónico."
|
690 |
+
|
691 |
+
#: inc/lp-core-functions.php:1287
|
692 |
+
msgid "Please moderate"
|
693 |
+
msgstr "Por favor, moderado"
|
694 |
+
|
695 |
+
#: inc/lp-core-functions.php:1288
|
696 |
+
#, php-format
|
697 |
+
msgid "The user <a href=\"%s\">%s</a> wants to be a teacher."
|
698 |
+
msgstr "El usuario <a href=\"%s\">%s</a> quiere ser un maestro."
|
699 |
+
|
700 |
+
#: inc/lp-core-functions.php:1290
|
701 |
+
#, php-format
|
702 |
+
msgid "Name: %s"
|
703 |
+
msgstr "Nombre: %s"
|
704 |
+
|
705 |
+
#: inc/lp-core-functions.php:1291
|
706 |
+
#, php-format
|
707 |
+
msgid "Email: %s"
|
708 |
+
msgstr ""
|
709 |
+
|
710 |
+
#: inc/lp-core-functions.php:1292
|
711 |
+
#, php-format
|
712 |
+
msgid "Phone: %s"
|
713 |
+
msgstr "Teléfono: %s"
|
714 |
+
|
715 |
+
#: inc/lp-core-functions.php:1293
|
716 |
+
#, php-format
|
717 |
+
msgid "Accept: %s"
|
718 |
+
msgstr "Aceptar: %s"
|
719 |
+
|
720 |
+
#: inc/lp-core-functions.php:1858 inc/admin/class-lp-admin.php:113
|
721 |
+
msgid "OK"
|
722 |
+
msgstr ""
|
723 |
+
|
724 |
+
#: inc/lp-core-functions.php:1860 inc/admin/class-lp-admin.php:115
|
725 |
+
#: inc/custom-post-types/quiz.php:222 inc/custom-post-types/quiz.php:233
|
726 |
+
msgid "Yes"
|
727 |
+
msgstr "Si"
|
728 |
+
|
729 |
+
#: inc/lp-core-functions.php:1861 inc/admin/class-lp-admin.php:116
|
730 |
+
#: inc/custom-post-types/quiz.php:178 inc/custom-post-types/quiz.php:221
|
731 |
+
#: inc/custom-post-types/quiz.php:232
|
732 |
+
msgid "No"
|
733 |
+
msgstr "No"
|
734 |
+
|
735 |
+
#: inc/lp-core-functions.php:2178
|
736 |
+
msgid "Learning"
|
737 |
+
msgstr "Aprendizaje"
|
738 |
+
|
739 |
+
#: inc/lp-core-functions.php:2179 inc/custom-post-types/order.php:305
|
740 |
+
msgid "Purchased"
|
741 |
+
msgstr "Compardo"
|
742 |
+
|
743 |
+
#: inc/lp-core-functions.php:2180 inc/lp-core-functions.php:2709
|
744 |
+
msgid "Finished"
|
745 |
+
msgstr "Terminado"
|
746 |
+
|
747 |
+
#: inc/lp-core-functions.php:2181
|
748 |
+
msgid "Own"
|
749 |
+
msgstr "Propio"
|
750 |
+
|
751 |
+
#: inc/lp-core-functions.php:2286
|
752 |
+
#, php-format
|
753 |
+
msgid "Congrats! You've enrolled course \"%s\"."
|
754 |
+
msgstr "Felicidades! Te has inscrito en el curso \"%s\"."
|
755 |
+
|
756 |
+
#: inc/lp-core-functions.php:2319
|
757 |
+
msgid "Cart"
|
758 |
+
msgstr "Carrito"
|
759 |
+
|
760 |
+
#: inc/lp-core-functions.php:2323
|
761 |
+
msgid "Enable cart"
|
762 |
+
msgstr "Habilitar carrito"
|
763 |
+
|
764 |
+
#: inc/lp-core-functions.php:2324
|
765 |
+
msgid "Check this option to enable user purchase multiple courses at one time."
|
766 |
+
msgstr ""
|
767 |
+
"Compruebe esta opción para activar el usuario puede comprar cursos múltiples "
|
768 |
+
"al mismo tiempo"
|
769 |
+
|
770 |
+
#: inc/lp-core-functions.php:2330
|
771 |
+
msgid "Add to cart redirect"
|
772 |
+
msgstr "Añadir a redireccion de carrito"
|
773 |
+
|
774 |
+
#: inc/lp-core-functions.php:2331
|
775 |
+
msgid "Redirect to checkout immediately after adding course to cart."
|
776 |
+
msgstr "Redirigir a pedir inmediatamente después de añadir a la cesta"
|
777 |
+
|
778 |
+
#: inc/lp-core-functions.php:2337
|
779 |
+
msgid "AJAX add to cart"
|
780 |
+
msgstr ""
|
781 |
+
|
782 |
+
#: inc/lp-core-functions.php:2338
|
783 |
+
msgid "Using AJAX to add course to cart."
|
784 |
+
msgstr ""
|
785 |
+
|
786 |
+
#: inc/lp-core-functions.php:2344
|
787 |
+
msgid "Cart page"
|
788 |
+
msgstr "Página del Carrito"
|
789 |
+
|
790 |
+
#: inc/lp-core-functions.php:2469
|
791 |
+
msgid "Are you sure you want to cancel order?"
|
792 |
+
msgstr "¿Deseas cancelar la orden?"
|
793 |
+
|
794 |
+
#: inc/lp-core-functions.php:2470
|
795 |
+
msgid "Cancel Order"
|
796 |
+
msgstr "Cancelar Pedido"
|
797 |
+
|
798 |
+
#: inc/lp-core-functions.php:2492
|
799 |
+
#, php-format
|
800 |
+
msgid "Order number <strong>%s</strong> not found"
|
801 |
+
msgstr "Número de pedido<strong>%s</strong> no encontrado"
|
802 |
+
|
803 |
+
#: inc/lp-core-functions.php:2495
|
804 |
+
msgid "Order cancelled by customer"
|
805 |
+
msgstr "Pedido cancelado por el cliente."
|
806 |
+
|
807 |
+
#: inc/lp-core-functions.php:2498
|
808 |
+
#, php-format
|
809 |
+
msgid "Order number <strong>%s</strong> has been cancelled"
|
810 |
+
msgstr "Pedido número <strong>%s</strong> ha sido cancelado"
|
811 |
+
|
812 |
+
#: inc/lp-core-functions.php:2501
|
813 |
+
#, php-format
|
814 |
+
msgid "Order number <strong>%s</strong> can not cancelled"
|
815 |
+
msgstr "Pedido número <strong>%s</strong> no se ha cancelado"
|
816 |
+
|
817 |
+
#: inc/lp-core-functions.php:2549
|
818 |
+
msgid "Profile Page"
|
819 |
+
msgstr "Pagina de perfil"
|
820 |
+
|
821 |
+
#: inc/lp-core-functions.php:2555
|
822 |
+
msgid "Checkout Page"
|
823 |
+
msgstr "Página del pago"
|
824 |
+
|
825 |
+
#: inc/lp-core-functions.php:2580
|
826 |
+
msgid "Hidden"
|
827 |
+
msgstr "Oculto"
|
828 |
+
|
829 |
+
#: inc/lp-core-functions.php:2583
|
830 |
+
msgid "Go to setup "
|
831 |
+
msgstr "Ir a la página Configuración "
|
832 |
+
|
833 |
+
#: inc/lp-core-functions.php:2595
|
834 |
+
msgid "LP Setup Page"
|
835 |
+
msgstr ""
|
836 |
+
|
837 |
+
#: inc/lp-core-functions.php:2598
|
838 |
+
msgid "Warning! You need setup all pages"
|
839 |
+
msgstr "¡Advertencia! Es necesario configurar todas las páginas"
|
840 |
+
|
841 |
+
#: inc/lp-core-functions.php:2708
|
842 |
+
msgid "In Progress"
|
843 |
+
msgstr "En progreso"
|
844 |
+
|
845 |
+
#: inc/lp-js-template.php:11
|
846 |
+
msgid "--Select a Lesson--"
|
847 |
+
msgstr "-- Selecciona una Lección --"
|
848 |
+
|
849 |
+
#: inc/lp-template-functions.php:171
|
850 |
+
msgctxt "breadcrumb"
|
851 |
+
msgid "Home"
|
852 |
+
msgstr "Inicio"
|
853 |
+
|
854 |
+
#: inc/lp-template-functions.php:709 inc/admin/sub-menus/statistics.php:51
|
855 |
+
#: inc/admin/sub-menus/statistics.php:57 inc/custom-post-types/order.php:412
|
856 |
+
#: inc/custom-post-types/order.php:413 inc/custom-post-types/order.php:417
|
857 |
+
msgid "Orders"
|
858 |
+
msgstr "Compras"
|
859 |
+
|
860 |
+
#: inc/lp-template-functions.php:717
|
861 |
+
#: inc/admin/views/meta-boxes/order/actions.php:77
|
862 |
+
#: inc/admin/views/meta-boxes/question/header.php:12
|
863 |
+
#: inc/admin/views/meta-boxes/quiz/question.php:30
|
864 |
+
#: inc/custom-post-types/lesson.php:211 inc/custom-post-types/question.php:277
|
865 |
+
#: inc/custom-post-types/quiz.php:347 inc/question/abstract-lp-question.php:652
|
866 |
+
msgid "Edit"
|
867 |
+
msgstr "Editar"
|
868 |
+
|
869 |
+
#: inc/lp-template-functions.php:1061
|
870 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:76
|
871 |
+
msgid "Order received"
|
872 |
+
msgstr "Pedido recibido"
|
873 |
+
|
874 |
+
#: inc/lp-template-functions.php:1077
|
875 |
+
#, php-format
|
876 |
+
msgid "Access denied \"%s\""
|
877 |
+
msgstr "Acceso negado \"%s\""
|
878 |
+
|
879 |
+
#: inc/lp-template-functions.php:1127
|
880 |
+
#, php-format
|
881 |
+
msgid "Search Results: “%s”"
|
882 |
+
msgstr "Resultados para: “%s”"
|
883 |
+
|
884 |
+
#: inc/lp-template-functions.php:1130
|
885 |
+
#, php-format
|
886 |
+
msgid " – Page %s"
|
887 |
+
msgstr " – Página %s"
|
888 |
+
|
889 |
+
#: inc/lp-template-functions.php:1389
|
890 |
+
msgid "Final"
|
891 |
+
msgstr ""
|
892 |
+
|
893 |
+
#: inc/lp-template-functions.php:1398 inc/custom-post-types/abstract.php:456
|
894 |
+
#: inc/custom-post-types/lesson.php:178
|
895 |
+
#: inc/libraries/meta-box/inc/fields/oembed.php:70
|
896 |
+
#: templates/single-course/section/item-meta.php:23
|
897 |
+
msgid "Preview"
|
898 |
+
msgstr "Vista previa"
|
899 |
+
|
900 |
+
#: inc/lp-template-functions.php:1470
|
901 |
+
msgid "Overview"
|
902 |
+
msgstr "Resumen"
|
903 |
+
|
904 |
+
#: inc/lp-template-functions.php:1478
|
905 |
+
#: inc/admin/views/meta-boxes/course/curriculum.php:8
|
906 |
+
#: inc/custom-post-types/course.php:531
|
907 |
+
msgid "Curriculum"
|
908 |
+
msgstr "Plan estudios"
|
909 |
+
|
910 |
+
#: inc/lp-template-functions.php:1488 inc/admin/lp-admin-functions.php:568
|
911 |
+
#: inc/admin/views/statistics/courses.php:8
|
912 |
+
#: inc/admin/views/statistics/orders.php:8
|
913 |
+
#: inc/admin/views/statistics/users.php:8
|
914 |
+
#: inc/admin/views/statistics/users.php:44
|
915 |
+
#: inc/custom-post-types/course.php:1291 inc/custom-post-types/course.php:1297
|
916 |
+
msgid "Students"
|
917 |
+
msgstr "Alumnos"
|
918 |
+
|
919 |
+
#: inc/lp-webhooks.php:78
|
920 |
+
msgid "LearnPress webhook process Complete"
|
921 |
+
msgstr ""
|
922 |
+
|
923 |
+
#: inc/admin/class-lp-admin-ajax.php:204
|
924 |
+
msgid "There are no available lessons for this course, please use "
|
925 |
+
msgstr "No hay lecciones en este curso "
|
926 |
+
|
927 |
+
#: inc/admin/class-lp-admin-ajax.php:205 inc/admin/class-lp-admin-ajax.php:209
|
928 |
+
#: inc/admin/class-lp-admin-ajax.php:213
|
929 |
+
msgid "Adding New Item."
|
930 |
+
msgstr "Añadiendo nuevo elemento."
|
931 |
+
|
932 |
+
#: inc/admin/class-lp-admin-ajax.php:208
|
933 |
+
msgid "There are no available quizzes for this course, please use "
|
934 |
+
msgstr "No hay pruebas disponibles para este curso "
|
935 |
+
|
936 |
+
#: inc/admin/class-lp-admin-ajax.php:212
|
937 |
+
msgid "There are no available questions for this quiz, please use "
|
938 |
+
msgstr "No hay preguntas disponibles para este cuestionario "
|
939 |
+
|
940 |
+
#: inc/admin/class-lp-admin-ajax.php:258 inc/admin/class-lp-admin-ajax.php:367
|
941 |
+
#: inc/admin/lp-admin-functions.php:1143 inc/quiz/class-lp-quiz-factory.php:118
|
942 |
+
#: inc/quiz/class-lp-quiz-factory.php:127
|
943 |
+
#: inc/quiz/class-lp-quiz-factory.php:162
|
944 |
+
#: inc/quiz/class-lp-quiz-factory.php:174
|
945 |
+
#: inc/quiz/class-lp-quiz-factory.php:356
|
946 |
+
msgid "Error"
|
947 |
+
msgstr ""
|
948 |
+
|
949 |
+
#: inc/admin/class-lp-admin-ajax.php:326 inc/admin/class-lp-admin-ajax.php:436
|
950 |
+
msgid "Untitled"
|
951 |
+
msgstr ""
|
952 |
+
|
953 |
+
#: inc/admin/class-lp-admin-ajax.php:343
|
954 |
+
msgid "No item found"
|
955 |
+
msgstr "Ningún producto encontrado"
|
956 |
+
|
957 |
+
#: inc/admin/class-lp-admin-ajax.php:351
|
958 |
+
msgid "A "
|
959 |
+
msgstr ""
|
960 |
+
|
961 |
+
#: inc/admin/class-lp-admin-ajax.php:351
|
962 |
+
msgid " is just used for only one "
|
963 |
+
msgstr " sólo se utiliza para una sola "
|
964 |
+
|
965 |
+
#: inc/admin/class-lp-admin-ajax.php:396
|
966 |
+
msgid "You have no permission to access this section."
|
967 |
+
msgstr "No tienes permiso para acceder a esta sección"
|
968 |
+
|
969 |
+
#: inc/admin/class-lp-admin-ajax.php:453 inc/custom-post-types/question.php:104
|
970 |
+
msgid "No questions found"
|
971 |
+
msgstr "No se encontraron preguntas"
|
972 |
+
|
973 |
+
#: inc/admin/class-lp-admin-ajax.php:479 inc/admin/class-lp-admin-ajax.php:524
|
974 |
+
msgid "Permission denied"
|
975 |
+
msgstr "Permiso denegado"
|
976 |
+
|
977 |
+
#: inc/admin/class-lp-admin-ajax.php:485
|
978 |
+
msgid "Check nonce failed"
|
979 |
+
msgstr "Comprobar que no haya fallado"
|
980 |
+
|
981 |
+
#: inc/admin/class-lp-admin-ajax.php:491 inc/admin/class-lp-admin-ajax.php:536
|
982 |
+
msgid "Order invalid"
|
983 |
+
msgstr "Pedido inválido"
|
984 |
+
|
985 |
+
#: inc/admin/class-lp-admin-ajax.php:498
|
986 |
+
msgid "Course invalid"
|
987 |
+
msgstr "Curso inválido"
|
988 |
+
|
989 |
+
#: inc/admin/class-lp-admin-ajax.php:604
|
990 |
+
msgid "Verify nonce failed"
|
991 |
+
msgstr "No se ha podido verificar"
|
992 |
+
|
993 |
+
#: inc/admin/class-lp-admin-ajax.php:747 inc/admin/class-lp-admin-ajax.php:972
|
994 |
+
#: inc/admin/lp-admin-functions.php:132
|
995 |
+
msgid "Edit Page"
|
996 |
+
msgstr "Editar Pagina"
|
997 |
+
|
998 |
+
#: inc/admin/class-lp-admin-ajax.php:748 inc/admin/class-lp-admin-ajax.php:973
|
999 |
+
#: inc/admin/lp-admin-functions.php:133
|
1000 |
+
msgid "View Page"
|
1001 |
+
msgstr "Ver Página"
|
1002 |
+
|
1003 |
+
#: inc/admin/class-lp-admin-ajax.php:750
|
1004 |
+
msgid "Error! Create page failed. Please try again!"
|
1005 |
+
msgstr "¡Error! Crear página falló. Por favor, inténtelo de nuevo!"
|
1006 |
+
|
1007 |
+
#: inc/admin/class-lp-admin-ajax.php:753
|
1008 |
+
msgid "Empty page name!"
|
1009 |
+
msgstr "Nombre de la página vacía!"
|
1010 |
+
|
1011 |
+
#: inc/admin/class-lp-admin-ajax.php:837
|
1012 |
+
msgid ""
|
1013 |
+
"Something went wrong! Please try again or ask <a href=\"https://wordpress."
|
1014 |
+
"org/support/\">support forums</a>."
|
1015 |
+
msgstr ""
|
1016 |
+
"¡Algo salió mal! Por favor, inténtelo de nuevo o pedir a <a href=\"https://"
|
1017 |
+
"wordpress.org/support/\">los foros de soporte</a> ."
|
1018 |
+
|
1019 |
+
#: inc/admin/class-lp-admin-ajax.php:850
|
1020 |
+
msgid "Try again!"
|
1021 |
+
msgstr "Inténtalo de nuevo!"
|
1022 |
+
|
1023 |
+
#: inc/admin/class-lp-admin-ajax.php:876
|
1024 |
+
msgid "Import sample data successes."
|
1025 |
+
msgstr "Importación exitosa de datos de ejemplo."
|
1026 |
+
|
1027 |
+
#: inc/admin/class-lp-admin-ajax.php:876
|
1028 |
+
msgid "View courses"
|
1029 |
+
msgstr "Ver cursos"
|
1030 |
+
|
1031 |
+
#: inc/admin/class-lp-admin-ajax.php:880
|
1032 |
+
msgid "Import sample data failed. Please try again!."
|
1033 |
+
msgstr ""
|
1034 |
+
"No se pudo importar los datos de la muestra. Por favor, inténtelo de nuevo."
|
1035 |
+
|
1036 |
+
#: inc/admin/class-lp-admin-ajax.php:884
|
1037 |
+
msgid ""
|
1038 |
+
"Unknown error when installing/activating Import/Export addon. Please try "
|
1039 |
+
"again!"
|
1040 |
+
msgstr ""
|
1041 |
+
"Error desconocido durante la instalación/activación de importación/"
|
1042 |
+
"exportación complemento. Por favor, inténtelo de nuevo!"
|
1043 |
+
|
1044 |
+
#: inc/admin/class-lp-admin-ajax.php:900 inc/admin/class-lp-admin-ajax.php:921
|
1045 |
+
#: inc/admin/class-lp-admin-ajax.php:941
|
1046 |
+
msgid ""
|
1047 |
+
"You do not have sufficient permissions to deactivate plugins for this site."
|
1048 |
+
msgstr "No tienes permisos suficientes para actualizar plugins en este sitio."
|
1049 |
+
|
1050 |
+
#: inc/admin/class-lp-admin-ajax.php:1079
|
1051 |
+
msgid " course has duplicated"
|
1052 |
+
msgstr " curso se ha duplicado"
|
1053 |
+
|
1054 |
+
#: inc/admin/class-lp-admin-menu.php:50
|
1055 |
+
msgid "Learning Management System"
|
1056 |
+
msgstr "Sistema de Administración de Aprendizaje"
|
1057 |
+
|
1058 |
+
#: inc/admin/class-lp-admin-menu.php:51 inc/admin/lp-admin-functions.php:1513
|
1059 |
+
msgid "LearnPress"
|
1060 |
+
msgstr "LearnPress adsdasd"
|
1061 |
+
|
1062 |
+
#: inc/admin/class-lp-admin-menu.php:62 inc/admin/class-lp-admin-menu.php:63
|
1063 |
+
msgid "Statistics"
|
1064 |
+
msgstr "Estadísticas"
|
1065 |
+
|
1066 |
+
#: inc/admin/class-lp-admin-menu.php:78 inc/admin/class-lp-admin-menu.php:79
|
1067 |
+
#: inc/custom-post-types/question.php:148
|
1068 |
+
msgid "Settings"
|
1069 |
+
msgstr "Ajustes"
|
1070 |
+
|
1071 |
+
#: inc/admin/class-lp-admin-menu.php:86 inc/admin/class-lp-admin-menu.php:87
|
1072 |
+
msgid "Tools"
|
1073 |
+
msgstr "Herramientas"
|
1074 |
+
|
1075 |
+
#: inc/admin/class-lp-admin.php:28
|
1076 |
+
#, php-format
|
1077 |
+
msgid ""
|
1078 |
+
"LearnPress requires permalink option <strong>Post name</strong> is enabled. "
|
1079 |
+
"Please enable it <a href=\"%s\">here</a> to ensure that all functions work "
|
1080 |
+
"properly."
|
1081 |
+
msgstr ""
|
1082 |
+
|
1083 |
+
#: inc/admin/class-lp-admin.php:63
|
1084 |
+
#, php-format
|
1085 |
+
msgid ""
|
1086 |
+
"If you like <strong>LearnPress</strong> please leave us a %s★★"
|
1087 |
+
"★★★%s rating. A huge thanks in advance!"
|
1088 |
+
msgstr ""
|
1089 |
+
|
1090 |
+
#: inc/admin/class-lp-admin.php:63
|
1091 |
+
msgid "Thanks :)"
|
1092 |
+
msgstr "Gracias :)"
|
1093 |
+
|
1094 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:162
|
1095 |
+
msgid "No plugin found."
|
1096 |
+
msgstr ""
|
1097 |
+
|
1098 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:296
|
1099 |
+
msgctxt "Plugin installer group title"
|
1100 |
+
msgid "Performance"
|
1101 |
+
msgstr "Gestión"
|
1102 |
+
|
1103 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:297
|
1104 |
+
msgctxt "Plugin installer group title"
|
1105 |
+
msgid "Social"
|
1106 |
+
msgstr ""
|
1107 |
+
|
1108 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:298
|
1109 |
+
msgctxt "Plugin installer group title"
|
1110 |
+
msgid "Tools"
|
1111 |
+
msgstr "Herramientas"
|
1112 |
+
|
1113 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:341
|
1114 |
+
#: templates/loop/course/instructor.php:18
|
1115 |
+
#, php-format
|
1116 |
+
msgid "By %s"
|
1117 |
+
msgstr "Por %s"
|
1118 |
+
|
1119 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:362
|
1120 |
+
msgid "Install and Active"
|
1121 |
+
msgstr "Instalar y Activar"
|
1122 |
+
|
1123 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:376
|
1124 |
+
msgctxt "plugin"
|
1125 |
+
msgid "Enabled"
|
1126 |
+
msgstr "Habilitado"
|
1127 |
+
|
1128 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:378
|
1129 |
+
msgctxt "plugin"
|
1130 |
+
msgid "Enable"
|
1131 |
+
msgstr "Activar"
|
1132 |
+
|
1133 |
+
#: inc/admin/class-lp-plugin-install-list-table.php:425
|
1134 |
+
msgid "Not Install"
|
1135 |
+
msgstr "No Instalado"
|
1136 |
+
|
1137 |
+
#: inc/admin/class-lp-profile.php:49
|
1138 |
+
msgid "LearnPress Profile"
|
1139 |
+
msgstr "Perfil"
|
1140 |
+
|
1141 |
+
#: inc/admin/class-lp-profile.php:72
|
1142 |
+
msgid "User Information"
|
1143 |
+
msgstr "Información del Usuario"
|
1144 |
+
|
1145 |
+
#: inc/admin/class-lp-profile.php:132
|
1146 |
+
msgid "<span class=\"course-status passed\">Passed</span>"
|
1147 |
+
msgstr "<span class=\"course-status passed\">Pasado</span>"
|
1148 |
+
|
1149 |
+
#: inc/admin/class-lp-upgrader.php:12
|
1150 |
+
msgid "Invalid Data provided."
|
1151 |
+
msgstr "Datos no válidos."
|
1152 |
+
|
1153 |
+
#: inc/admin/class-lp-upgrader.php:13
|
1154 |
+
msgid "Could not access filesystem."
|
1155 |
+
msgstr "No se ha podido acceder al sistema de archivos."
|
1156 |
+
|
1157 |
+
#: inc/admin/class-lp-upgrader.php:14
|
1158 |
+
msgid "Filesystem error."
|
1159 |
+
msgstr "Error del sistema de archivos."
|
1160 |
+
|
1161 |
+
#: inc/admin/class-lp-upgrader.php:15
|
1162 |
+
msgid "Unable to locate WordPress Root directory."
|
1163 |
+
msgstr ""
|
1164 |
+
|
1165 |
+
#: inc/admin/class-lp-upgrader.php:16
|
1166 |
+
msgid "Unable to locate WordPress Content directory (wp-content)."
|
1167 |
+
msgstr ""
|
1168 |
+
|
1169 |
+
#: inc/admin/class-lp-upgrader.php:17
|
1170 |
+
msgid "Unable to locate WordPress Plugin directory."
|
1171 |
+
msgstr ""
|
1172 |
+
|
1173 |
+
#: inc/admin/class-lp-upgrader.php:18
|
1174 |
+
msgid "Unable to locate WordPress Theme directory."
|
1175 |
+
msgstr ""
|
1176 |
+
|
1177 |
+
#: inc/admin/class-lp-upgrader.php:20
|
1178 |
+
#, php-format
|
1179 |
+
msgid "Unable to locate needed folder (%s)."
|
1180 |
+
msgstr ""
|
1181 |
+
|
1182 |
+
#: inc/admin/class-lp-upgrader.php:22
|
1183 |
+
msgid "Download failed."
|
1184 |
+
msgstr "Error en la descarga!"
|
1185 |
+
|
1186 |
+
#: inc/admin/class-lp-upgrader.php:23
|
1187 |
+
msgid "Installing the latest version…"
|
1188 |
+
msgstr ""
|
1189 |
+
|
1190 |
+
#: inc/admin/class-lp-upgrader.php:24
|
1191 |
+
msgid "The package contains no files."
|
1192 |
+
msgstr ""
|
1193 |
+
|
1194 |
+
#: inc/admin/class-lp-upgrader.php:25
|
1195 |
+
msgid "Destination folder already exists."
|
1196 |
+
msgstr ""
|
1197 |
+
|
1198 |
+
#: inc/admin/class-lp-upgrader.php:26
|
1199 |
+
msgid "Could not create directory."
|
1200 |
+
msgstr "No se puede crear el directorio."
|
1201 |
+
|
1202 |
+
#: inc/admin/class-lp-upgrader.php:27
|
1203 |
+
msgid "The package could not be installed."
|
1204 |
+
msgstr ""
|
1205 |
+
|
1206 |
+
#: inc/admin/class-lp-upgrader.php:29
|
1207 |
+
msgid "Enabling Maintenance mode…"
|
1208 |
+
msgstr ""
|
1209 |
+
|
1210 |
+
#: inc/admin/class-lp-upgrader.php:30
|
1211 |
+
msgid "Disabling Maintenance mode…"
|
1212 |
+
msgstr ""
|
1213 |
+
|
1214 |
+
#: inc/admin/lp-admin-actions.php:51
|
1215 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-plugin.php:50
|
1216 |
+
msgid "Published"
|
1217 |
+
msgstr "Publicado"
|
1218 |
+
|
1219 |
+
#: inc/admin/lp-admin-actions.php:52
|
1220 |
+
msgid "Private"
|
1221 |
+
msgstr "Privado"
|
1222 |
+
|
1223 |
+
#: inc/admin/lp-admin-actions.php:53
|
1224 |
+
msgid "Pending Review"
|
1225 |
+
msgstr "Pendiente de revisión"
|
1226 |
+
|
1227 |
+
#: inc/admin/lp-admin-actions.php:54
|
1228 |
+
msgid "Scheduled"
|
1229 |
+
msgstr "Programado"
|
1230 |
+
|
1231 |
+
#: inc/admin/lp-admin-actions.php:55
|
1232 |
+
msgid "Draft"
|
1233 |
+
msgstr "Plantilla"
|
1234 |
+
|
1235 |
+
#: inc/admin/lp-admin-actions.php:56
|
1236 |
+
msgid "Trash"
|
1237 |
+
msgstr "Papelera"
|
1238 |
+
|
1239 |
+
#: inc/admin/lp-admin-actions.php:132
|
1240 |
+
msgid "LearnPress Plugin"
|
1241 |
+
msgstr "Plugin"
|
1242 |
+
|
1243 |
+
#: inc/admin/lp-admin-actions.php:133
|
1244 |
+
msgid "LearnPress Status"
|
1245 |
+
msgstr "Estado"
|
1246 |
+
|
1247 |
+
#: inc/admin/lp-admin-functions.php:79
|
1248 |
+
msgid "[ Add a new page ]"
|
1249 |
+
msgstr "[ Añadir nuevo página ]"
|
1250 |
+
|
1251 |
+
#: inc/admin/lp-admin-functions.php:94
|
1252 |
+
msgid "Select Page"
|
1253 |
+
msgstr "Seleccionar página"
|
1254 |
+
|
1255 |
+
#: inc/admin/lp-admin-functions.php:113
|
1256 |
+
msgid "Select a page…"
|
1257 |
+
msgstr "Selecciona una página…"
|
1258 |
+
|
1259 |
+
#: inc/admin/lp-admin-functions.php:125
|
1260 |
+
msgid "Create"
|
1261 |
+
msgstr "Crear"
|
1262 |
+
|
1263 |
+
#: inc/admin/lp-admin-functions.php:127
|
1264 |
+
msgid "New page title"
|
1265 |
+
msgstr "Nuevo título de página"
|
1266 |
+
|
1267 |
+
#: inc/admin/lp-admin-functions.php:128
|
1268 |
+
msgid "Ok [Enter]"
|
1269 |
+
msgstr ""
|
1270 |
+
|
1271 |
+
#: inc/admin/lp-admin-functions.php:129
|
1272 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:5
|
1273 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:13
|
1274 |
+
#: inc/custom-post-types/question.php:224 inc/custom-post-types/quiz.php:291
|
1275 |
+
msgid "Cancel [ESC]"
|
1276 |
+
msgstr "Cancelar [ESC]"
|
1277 |
+
|
1278 |
+
#: inc/admin/lp-admin-functions.php:205
|
1279 |
+
msgid "Minutes"
|
1280 |
+
msgstr "Minutos"
|
1281 |
+
|
1282 |
+
#: inc/admin/lp-admin-functions.php:247
|
1283 |
+
msgid "Plain text"
|
1284 |
+
msgstr "Sólo Texto"
|
1285 |
+
|
1286 |
+
#: inc/admin/lp-admin-functions.php:248
|
1287 |
+
msgid "HTML"
|
1288 |
+
msgstr ""
|
1289 |
+
|
1290 |
+
#: inc/admin/lp-admin-functions.php:271
|
1291 |
+
msgid "Quiz is not available"
|
1292 |
+
msgstr "Examen no disponible"
|
1293 |
+
|
1294 |
+
#: inc/admin/lp-admin-functions.php:272
|
1295 |
+
msgid "Lesson is not available"
|
1296 |
+
msgstr "Lección no está disponible"
|
1297 |
+
|
1298 |
+
#: inc/admin/lp-admin-functions.php:274
|
1299 |
+
msgid "Duplicate course"
|
1300 |
+
msgstr "Duplicar curso"
|
1301 |
+
|
1302 |
+
#: inc/admin/lp-admin-functions.php:275
|
1303 |
+
msgid "Duplicate course curriculum?"
|
1304 |
+
msgstr "Duplicar programa del curso?"
|
1305 |
+
|
1306 |
+
#: inc/admin/lp-admin-functions.php:278
|
1307 |
+
msgid "Duplicate Question"
|
1308 |
+
msgstr "Duplicar preguntas"
|
1309 |
+
|
1310 |
+
#: inc/admin/lp-admin-functions.php:279
|
1311 |
+
msgid "Do you want to duplicate this question?"
|
1312 |
+
msgstr "Deseas duplicar esta pregunta?"
|
1313 |
+
|
1314 |
+
#: inc/admin/lp-admin-functions.php:281
|
1315 |
+
msgid "Do you want to remove this question from quiz?"
|
1316 |
+
msgstr "Quieres eliminar esta pregunta del cuestionario?"
|
1317 |
+
|
1318 |
+
#: inc/admin/lp-admin-functions.php:298
|
1319 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:36
|
1320 |
+
#: inc/admin/settings/class-lp-settings-courses.php:18
|
1321 |
+
#: inc/admin/settings/class-lp-settings-general.php:16
|
1322 |
+
msgid "General"
|
1323 |
+
msgstr ""
|
1324 |
+
|
1325 |
+
#: inc/admin/lp-admin-functions.php:300
|
1326 |
+
#: inc/admin/settings/class-lp-settings-pages.php:9
|
1327 |
+
msgid "Pages"
|
1328 |
+
msgstr "Páginas"
|
1329 |
+
|
1330 |
+
#: inc/admin/lp-admin-functions.php:301
|
1331 |
+
#: inc/admin/settings/class-lp-settings-payments.php:21
|
1332 |
+
msgid "Payments"
|
1333 |
+
msgstr "Pagos"
|
1334 |
+
|
1335 |
+
#: inc/admin/lp-admin-functions.php:302
|
1336 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:22
|
1337 |
+
#: templates/cart/form.php:106
|
1338 |
+
msgid "Checkout"
|
1339 |
+
msgstr "Pago"
|
1340 |
+
|
1341 |
+
#: inc/admin/lp-admin-functions.php:304
|
1342 |
+
#: inc/admin/settings/class-lp-settings-emails.php:25
|
1343 |
+
msgid "Emails"
|
1344 |
+
msgstr ""
|
1345 |
+
|
1346 |
+
#: inc/admin/lp-admin-functions.php:563
|
1347 |
+
#: inc/admin/views/statistics/courses.php:9
|
1348 |
+
#: inc/admin/views/statistics/orders.php:9
|
1349 |
+
#: inc/admin/views/statistics/users.php:9
|
1350 |
+
#: inc/admin/views/statistics/users.php:43
|
1351 |
+
msgid "Instructors"
|
1352 |
+
msgstr "Profesores"
|
1353 |
+
|
1354 |
+
#: inc/admin/lp-admin-functions.php:728
|
1355 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:25
|
1356 |
+
msgid "Publish"
|
1357 |
+
msgstr "Publicado"
|
1358 |
+
|
1359 |
+
#: inc/admin/lp-admin-functions.php:733 inc/admin/lp-admin-functions.php:935
|
1360 |
+
#: inc/admin/views/statistics/courses.php:44
|
1361 |
+
#: inc/admin/views/statistics/orders.php:64
|
1362 |
+
#: inc/order/lp-order-functions.php:649
|
1363 |
+
msgid "Pending"
|
1364 |
+
msgstr "Pendiente"
|
1365 |
+
|
1366 |
+
#: inc/admin/lp-admin-functions.php:738
|
1367 |
+
#: inc/admin/views/statistics/courses.php:45
|
1368 |
+
msgid "Paid"
|
1369 |
+
msgstr "Pagada"
|
1370 |
+
|
1371 |
+
#: inc/admin/lp-admin-functions.php:743
|
1372 |
+
#: inc/admin/views/statistics/courses.php:46
|
1373 |
+
#: inc/course/abstract-lp-course.php:563 inc/custom-post-types/course.php:1349
|
1374 |
+
#: inc/order/lp-order-functions.php:511
|
1375 |
+
#: inc/shortcodes/featured-courses/templates/cards.php:61
|
1376 |
+
#: inc/shortcodes/featured-courses/templates/grids.php:69
|
1377 |
+
#: inc/shortcodes/featured-courses/templates/list.php:73
|
1378 |
+
#: inc/shortcodes/popular-courses/templates/cards.php:61
|
1379 |
+
#: inc/shortcodes/popular-courses/templates/grids.php:69
|
1380 |
+
#: inc/shortcodes/popular-courses/templates/list.php:73
|
1381 |
+
#: inc/shortcodes/recent-courses/templates/cards.php:61
|
1382 |
+
#: inc/shortcodes/recent-courses/templates/grids.php:69
|
1383 |
+
#: inc/shortcodes/recent-courses/templates/list.php:72
|
1384 |
+
msgid "Free"
|
1385 |
+
msgstr "Gratis"
|
1386 |
+
|
1387 |
+
#: inc/admin/lp-admin-functions.php:961
|
1388 |
+
msgid "Pending Courses / Publish Courses"
|
1389 |
+
msgstr "Cursos pendientes / publicar cursos"
|
1390 |
+
|
1391 |
+
#: inc/admin/lp-admin-functions.php:961
|
1392 |
+
msgid "Free Courses / Priced Courses"
|
1393 |
+
msgstr "Cursos gratuitos / Cursos de pago"
|
1394 |
+
|
1395 |
+
#: inc/admin/lp-admin-functions.php:1068
|
1396 |
+
msgid "Duplicate this course"
|
1397 |
+
msgstr "Duplicar este curso"
|
1398 |
+
|
1399 |
+
#: inc/admin/lp-admin-functions.php:1079
|
1400 |
+
#: inc/admin/views/settings/fields/course-permalink.php:31
|
1401 |
+
#: inc/admin/views/statistics/orders.php:47
|
1402 |
+
#: inc/custom-post-types/lesson.php:172 inc/custom-post-types/quiz.php:316
|
1403 |
+
#: templates/cart/form.php:29 templates/checkout/review-order.php:26
|
1404 |
+
#: templates/emails/order-items-table.php:19
|
1405 |
+
#: templates/order/order-details.php:17
|
1406 |
+
msgid "Course"
|
1407 |
+
msgstr "Curso"
|
1408 |
+
|
1409 |
+
#: inc/admin/lp-admin-functions.php:1088
|
1410 |
+
msgid "Duplicate this quiz"
|
1411 |
+
msgstr "Duplicar esta prueba"
|
1412 |
+
|
1413 |
+
#: inc/admin/lp-admin-functions.php:1093
|
1414 |
+
msgid "Duplicate this question"
|
1415 |
+
msgstr "Duplicar esta pregunta"
|
1416 |
+
|
1417 |
+
#: inc/admin/lp-admin-functions.php:1098
|
1418 |
+
msgid "Duplicate this lesson"
|
1419 |
+
msgstr "Duplicar la lección"
|
1420 |
+
|
1421 |
+
#: inc/admin/lp-admin-functions.php:1150
|
1422 |
+
msgid "Oops! The course does not exist."
|
1423 |
+
msgstr "Ups! El curso no existe."
|
1424 |
+
|
1425 |
+
#: inc/admin/lp-admin-functions.php:1154
|
1426 |
+
msgid "Sorry! You have not permission to duplicate this course."
|
1427 |
+
msgstr "¡Lo siento! No tienes permiso para acceder a este curso."
|
1428 |
+
|
1429 |
+
#: inc/admin/lp-admin-functions.php:1183 inc/admin/lp-admin-functions.php:1743
|
1430 |
+
msgid "<p>Sorry! Duplicate course failed!</p>"
|
1431 |
+
msgstr "<p>Lo sentimos! Error al duplicar el curso!</p>"
|
1432 |
+
|
1433 |
+
#: inc/admin/lp-admin-functions.php:1244
|
1434 |
+
msgid "<p>Course duplicated.</p>"
|
1435 |
+
msgstr "<p>Curso duplicado.</p>"
|
1436 |
+
|
1437 |
+
#: inc/admin/lp-admin-functions.php:1268
|
1438 |
+
msgid "Sorry! Duplicate question failed!"
|
1439 |
+
msgstr "¡Lo siento! pregunta duplicada!"
|
1440 |
+
|
1441 |
+
#: inc/admin/lp-admin-functions.php:1269
|
1442 |
+
msgid "Question duplicated."
|
1443 |
+
msgstr "Pregunta duplicado."
|
1444 |
+
|
1445 |
+
#: inc/admin/lp-admin-functions.php:1273
|
1446 |
+
msgid "Sorry! Duplicate lesson failed!"
|
1447 |
+
msgstr "¡Lo siento! lección duplicada!"
|
1448 |
+
|
1449 |
+
#: inc/admin/lp-admin-functions.php:1274
|
1450 |
+
msgid "Lesson duplicated."
|
1451 |
+
msgstr "Lección duplicada."
|
1452 |
+
|
1453 |
+
#: inc/admin/lp-admin-functions.php:1278
|
1454 |
+
msgid "Sorry! Duplicate quiz failed!"
|
1455 |
+
msgstr "¡Lo siento! examen duplicado no!"
|
1456 |
+
|
1457 |
+
#: inc/admin/lp-admin-functions.php:1279
|
1458 |
+
msgid "Quiz duplicated."
|
1459 |
+
msgstr "Examen duplicado."
|
1460 |
+
|
1461 |
+
#: inc/admin/lp-admin-functions.php:1372
|
1462 |
+
#, php-format
|
1463 |
+
msgid "The user %s has become a teacher"
|
1464 |
+
msgstr "El usuario %s se ha convertido en un instructor"
|
1465 |
+
|
1466 |
+
#: inc/admin/lp-admin-functions.php:1428
|
1467 |
+
msgid "You haven't got any courses yet! Would you like to import sample data?"
|
1468 |
+
msgstr "No tienes ningún curso publicado todavía!"
|
1469 |
+
|
1470 |
+
#: inc/admin/lp-admin-functions.php:1429
|
1471 |
+
msgid "If yes, it requires to install addon name"
|
1472 |
+
msgstr "En caso afirmativo, se requiere que se instale el nombre del addon"
|
1473 |
+
|
1474 |
+
#: inc/admin/lp-admin-functions.php:1430
|
1475 |
+
msgid "LearnPress Import/Export"
|
1476 |
+
msgstr ""
|
1477 |
+
|
1478 |
+
#: inc/admin/lp-admin-functions.php:1431
|
1479 |
+
msgid "but don't worry because it is completely automated."
|
1480 |
+
msgstr "pero no se preocupe, ya que es completamente automatizado."
|
1481 |
+
|
1482 |
+
#: inc/admin/lp-admin-functions.php:1432
|
1483 |
+
msgid "Import now"
|
1484 |
+
msgstr "Importar ahora"
|
1485 |
+
|
1486 |
+
#: inc/admin/lp-admin-functions.php:1433
|
1487 |
+
msgid "No, thanks!"
|
1488 |
+
msgstr "No, gracias!"
|
1489 |
+
|
1490 |
+
#: inc/admin/lp-admin-functions.php:1734
|
1491 |
+
msgid "<p>Op! The course does not exist</p>"
|
1492 |
+
msgstr "<p> Op! El curso no existe </p>"
|
1493 |
+
|
1494 |
+
#: inc/admin/lp-admin-functions.php:1738
|
1495 |
+
msgid "<p>Sorry! You have not permission to duplicate this course</p>"
|
1496 |
+
msgstr "<p> ¡Lo siento! No tienes permisos para duplicar este curso </p>"
|
1497 |
+
|
1498 |
+
#: inc/admin/lp-admin-functions.php:1785
|
1499 |
+
#, php-format
|
1500 |
+
msgid "Question id %s is not exists."
|
1501 |
+
msgstr "Cuestionario id %s no es existe."
|
1502 |
+
|
1503 |
+
#: inc/admin/lp-admin-functions.php:1788
|
1504 |
+
#, php-format
|
1505 |
+
msgid "Quiz id %s is not exists."
|
1506 |
+
msgstr "Examen id %s no es existe."
|
1507 |
+
|
1508 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-plugin.php:21
|
1509 |
+
msgid "No results found"
|
1510 |
+
msgstr "Sin resultados"
|
1511 |
+
|
1512 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-plugin.php:34
|
1513 |
+
msgid "Downloaded"
|
1514 |
+
msgstr "Descargado"
|
1515 |
+
|
1516 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-plugin.php:35
|
1517 |
+
msgid "Active Installed"
|
1518 |
+
msgstr "Instalado"
|
1519 |
+
|
1520 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-plugin.php:53
|
1521 |
+
msgid "Updated"
|
1522 |
+
msgstr "Actualizado"
|
1523 |
+
|
1524 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-plugin.php:56
|
1525 |
+
msgid "Current Version"
|
1526 |
+
msgstr "Versión actual"
|
1527 |
+
|
1528 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:25
|
1529 |
+
msgid "Total Raised"
|
1530 |
+
msgstr "TOTAL"
|
1531 |
+
|
1532 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:32
|
1533 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:41
|
1534 |
+
#, php-format
|
1535 |
+
msgid "%d order"
|
1536 |
+
msgid_plural "%d orders"
|
1537 |
+
msgstr[0] "Pedido %d"
|
1538 |
+
msgstr[1] "Pedidos %d"
|
1539 |
+
|
1540 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:47
|
1541 |
+
msgid "Featured: "
|
1542 |
+
msgstr "Destacado: "
|
1543 |
+
|
1544 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:52
|
1545 |
+
msgid "Created by: "
|
1546 |
+
msgstr "Creado por: "
|
1547 |
+
|
1548 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:24
|
1549 |
+
msgid "Do you want to remove this lesson permanently?"
|
1550 |
+
msgstr "Deseas eliminar esta lección de forma permanente?"
|
1551 |
+
|
1552 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:25
|
1553 |
+
msgid "Do you want to remove this quiz permanently?"
|
1554 |
+
msgstr "Deseas eliminar este exámen de forma permanente?"
|
1555 |
+
|
1556 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:26
|
1557 |
+
msgid "Do you want to remove this section permanently?"
|
1558 |
+
msgstr "Deseas eliminar esta lección de forma permanente?"
|
1559 |
+
|
1560 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:27
|
1561 |
+
msgid "New quiz added"
|
1562 |
+
msgstr "Nuevo exámen añadido"
|
1563 |
+
|
1564 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:28
|
1565 |
+
msgid "New lesson added"
|
1566 |
+
msgstr "Nueva lección añadida"
|
1567 |
+
|
1568 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:29
|
1569 |
+
msgid "New section added"
|
1570 |
+
msgstr "Nueva sección añadida"
|
1571 |
+
|
1572 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:30
|
1573 |
+
msgid "The lesson removed"
|
1574 |
+
msgstr "La lección fue retirada"
|
1575 |
+
|
1576 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:31
|
1577 |
+
msgid "The quiz removed"
|
1578 |
+
msgstr "Cuesionario eliminado"
|
1579 |
+
|
1580 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:32
|
1581 |
+
msgid "The section removed"
|
1582 |
+
msgstr "Sección removida"
|
1583 |
+
|
1584 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:33
|
1585 |
+
msgid "The ordering completed"
|
1586 |
+
msgstr "La orden completada"
|
1587 |
+
|
1588 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:34
|
1589 |
+
msgid "Lesson added to section completed!"
|
1590 |
+
msgstr "Lección añadido a la sección completado!"
|
1591 |
+
|
1592 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:35
|
1593 |
+
msgid "Quiz added to section completed!"
|
1594 |
+
msgstr "Examen añadido a la sección completado!"
|
1595 |
+
|
1596 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:36
|
1597 |
+
#, php-format
|
1598 |
+
msgid "%s updated"
|
1599 |
+
msgstr "%s actualizados."
|
1600 |
+
|
1601 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:37
|
1602 |
+
msgid "Click to quick edit name"
|
1603 |
+
msgstr "Haz clic para editar nombre"
|
1604 |
+
|
1605 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:38
|
1606 |
+
msgid "Save Course"
|
1607 |
+
msgstr "Guardar curso"
|
1608 |
+
|
1609 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:39
|
1610 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:31
|
1611 |
+
msgid "Submit for Review"
|
1612 |
+
msgstr "Enviar para revisión"
|
1613 |
+
|
1614 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:152
|
1615 |
+
msgid "Add Lesson"
|
1616 |
+
msgstr "Añadir Lección"
|
1617 |
+
|
1618 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:157
|
1619 |
+
msgid "Add Quiz"
|
1620 |
+
msgstr "Añadir Examen"
|
1621 |
+
|
1622 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:170
|
1623 |
+
msgid "Using final quiz"
|
1624 |
+
msgstr "Cuestionario final"
|
1625 |
+
|
1626 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:175
|
1627 |
+
msgid "User must be complete the final quiz to finish a section."
|
1628 |
+
msgstr "Usuario debe completar el cuestionario final para terminar una sección"
|
1629 |
+
|
1630 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:259
|
1631 |
+
msgid "The course is empty"
|
1632 |
+
msgstr "El curso está vacío"
|
1633 |
+
|
1634 |
+
#: inc/admin/meta-boxes/class-curriculum-field.php:293
|
1635 |
+
msgid "Success"
|
1636 |
+
msgstr "Correcto"
|
1637 |
+
|
1638 |
+
#: inc/admin/meta-boxes/class-quiz-questions-field.php:86
|
1639 |
+
msgid "Can not create a question"
|
1640 |
+
msgstr "No se puede crear una pregunta"
|
1641 |
+
|
1642 |
+
#: inc/admin/pointers/pointers.php:66 inc/custom-post-types/course.php:536
|
1643 |
+
#: templates/single-course/curriculum.php:16
|
1644 |
+
msgid "Course Curriculum"
|
1645 |
+
msgstr "Temario del Curso"
|
1646 |
+
|
1647 |
+
#: inc/admin/pointers/pointers.php:67
|
1648 |
+
msgid ""
|
1649 |
+
"Build a course by selecting created lessons and quizzes or adding new ones. "
|
1650 |
+
"Sorting, editing, shortcuts (l and q), it never gets easier with LP."
|
1651 |
+
msgstr ""
|
1652 |
+
"Crear un curso seleccionando lecciones y exámenes o añadiendo nuevos. "
|
1653 |
+
"Ordenar, editar, atajos (l y q)"
|
1654 |
+
|
1655 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:52
|
1656 |
+
msgid "No checkout Free course"
|
1657 |
+
msgstr "Los cursos gratis no se procesan como pago"
|
1658 |
+
|
1659 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:53
|
1660 |
+
msgid ""
|
1661 |
+
"Check this option to allow user to enroll course immediately without adding "
|
1662 |
+
"to cart."
|
1663 |
+
msgstr ""
|
1664 |
+
"Marca esta opción para permitir al usuario inscribirme en el curso "
|
1665 |
+
"inmediatamente sin necesidad de añadir a la cesta."
|
1666 |
+
|
1667 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:59
|
1668 |
+
msgid "Disable auto enroll"
|
1669 |
+
msgstr "Desactivar Auto Cortar"
|
1670 |
+
|
1671 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:60
|
1672 |
+
msgid "Disable auto enroll a user after they buy a course."
|
1673 |
+
msgstr "Desactivar auto inscribir un usuario después de que compren un curso."
|
1674 |
+
|
1675 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:66
|
1676 |
+
msgid "Checkout page"
|
1677 |
+
msgstr "Página de pago"
|
1678 |
+
|
1679 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:72
|
1680 |
+
msgid "Checkout Endpoints"
|
1681 |
+
msgstr "Finalizar pedido"
|
1682 |
+
|
1683 |
+
#: inc/admin/settings/class-lp-settings-courses.php:32
|
1684 |
+
#: inc/custom-post-types/course.php:464
|
1685 |
+
msgctxt "slug"
|
1686 |
+
msgid "courses"
|
1687 |
+
msgstr "cursos"
|
1688 |
+
|
1689 |
+
#: inc/admin/settings/class-lp-settings-courses.php:45
|
1690 |
+
#: inc/admin/views/settings/fields/course-permalink.php:14
|
1691 |
+
msgctxt "default-slug"
|
1692 |
+
msgid "courses"
|
1693 |
+
msgstr "cursos"
|
1694 |
+
|
1695 |
+
#: inc/admin/settings/class-lp-settings-courses.php:64
|
1696 |
+
msgid "Courses Page"
|
1697 |
+
msgstr "Página de Cursos"
|
1698 |
+
|
1699 |
+
#: inc/admin/settings/class-lp-settings-courses.php:70
|
1700 |
+
msgid "Course category base"
|
1701 |
+
msgstr "Categoría base de curso"
|
1702 |
+
|
1703 |
+
#: inc/admin/settings/class-lp-settings-courses.php:76
|
1704 |
+
msgid "Course tag base"
|
1705 |
+
msgstr "Etiqueta de Curso base"
|
1706 |
+
|
1707 |
+
#: inc/admin/settings/class-lp-settings-courses.php:82
|
1708 |
+
msgid "Review course before publish"
|
1709 |
+
msgstr "Revisar curso antes de publicar"
|
1710 |
+
|
1711 |
+
#: inc/admin/settings/class-lp-settings-courses.php:83
|
1712 |
+
msgid "The course needs to be reviewed by admin before it can be published."
|
1713 |
+
msgstr ""
|
1714 |
+
"El curso tiene que ser revisado por el administrador antes de ser publicados."
|
1715 |
+
|
1716 |
+
#: inc/admin/settings/class-lp-settings-courses.php:89
|
1717 |
+
msgid "Enable edit published course"
|
1718 |
+
msgstr "Activar la edición de un curso publicado"
|
1719 |
+
|
1720 |
+
#: inc/admin/settings/class-lp-settings-courses.php:90
|
1721 |
+
msgid ""
|
1722 |
+
"Allow instructors to edit the course that are published without review.<br /"
|
1723 |
+
"> If this option is disabled, the course status will be changed to Pending "
|
1724 |
+
"Review when the instructor update course."
|
1725 |
+
msgstr ""
|
1726 |
+
"Permitir a los instructores para editar el curso que se publican sin "
|
1727 |
+
"revisión. <br /> Si esta opción está desactivada, el estado del curso será "
|
1728 |
+
"cambiado a Pendiente de revisión cuando el instructor Curso de actualización."
|
1729 |
+
|
1730 |
+
#: inc/admin/settings/class-lp-settings-courses.php:96
|
1731 |
+
msgid "Hide list of question in quiz"
|
1732 |
+
msgstr "No hay dudas en esta prueba"
|
1733 |
+
|
1734 |
+
#: inc/admin/settings/class-lp-settings-courses.php:97
|
1735 |
+
msgid ""
|
1736 |
+
"Hide list of question in quiz<br /> If this option is enabled, the course "
|
1737 |
+
"status will be changed to Pending Review when the instructor update course"
|
1738 |
+
msgstr ""
|
1739 |
+
"Ocultar lista de preguntas en el cuestionario<br>Si esta opción está "
|
1740 |
+
"activada, el status del curso cambiará a pendiente cuando el instructor "
|
1741 |
+
"actualice el curso"
|
1742 |
+
|
1743 |
+
#: inc/admin/settings/class-lp-settings-courses.php:103
|
1744 |
+
msgid "Archive"
|
1745 |
+
msgstr "Archivos"
|
1746 |
+
|
1747 |
+
#: inc/admin/settings/class-lp-settings-courses.php:107
|
1748 |
+
#: inc/admin/settings/class-lp-settings-pages.php:80
|
1749 |
+
msgid "Courses limit"
|
1750 |
+
msgstr "cursos límite"
|
1751 |
+
|
1752 |
+
#: inc/admin/settings/class-lp-settings-courses.php:108
|
1753 |
+
msgid "Number of courses displayed per page."
|
1754 |
+
msgstr "Número de cursos por página."
|
1755 |
+
|
1756 |
+
#: inc/admin/settings/class-lp-settings-courses.php:117
|
1757 |
+
#: inc/admin/settings/class-lp-settings-courses.php:127
|
1758 |
+
#: inc/admin/settings/class-lp-settings-general.php:95
|
1759 |
+
msgid "Course thumbnail"
|
1760 |
+
msgstr "Miniatura del Curso"
|
1761 |
+
|
1762 |
+
#: inc/admin/settings/class-lp-settings-courses.php:121
|
1763 |
+
msgid "Single course"
|
1764 |
+
msgstr "Curso único"
|
1765 |
+
|
1766 |
+
#: inc/admin/settings/class-lp-settings-courses.php:133
|
1767 |
+
#: inc/admin/settings/class-lp-settings-courses.php:137
|
1768 |
+
msgid "Single course permalink"
|
1769 |
+
msgstr "Enlace permanente del curso único"
|
1770 |
+
|
1771 |
+
#: inc/admin/settings/class-lp-settings-emails.php:39
|
1772 |
+
msgid "General options"
|
1773 |
+
msgstr "Opciones generales"
|
1774 |
+
|
1775 |
+
#: inc/admin/settings/class-lp-settings-emails.php:154
|
1776 |
+
#: inc/admin/settings/class-lp-settings-profile.php:37
|
1777 |
+
msgid "Profile page"
|
1778 |
+
msgstr "Pagina de perfil"
|
1779 |
+
|
1780 |
+
#: inc/admin/settings/class-lp-settings-general.php:32
|
1781 |
+
msgid "Instructors registration"
|
1782 |
+
msgstr "Registro de instructores"
|
1783 |
+
|
1784 |
+
#: inc/admin/settings/class-lp-settings-general.php:33
|
1785 |
+
msgid "Create option for instructors registration."
|
1786 |
+
msgstr "Crear opción para el registro de instructores."
|
1787 |
+
|
1788 |
+
#: inc/admin/settings/class-lp-settings-general.php:39
|
1789 |
+
msgid "Auto update post name"
|
1790 |
+
msgstr "Actualización automática del nombre de la publicación"
|
1791 |
+
|
1792 |
+
#: inc/admin/settings/class-lp-settings-general.php:40
|
1793 |
+
msgid ""
|
1794 |
+
"The post's name will update along with the title when changes title of "
|
1795 |
+
"lesson or quiz in course curriculum or question in quiz<br />The permalink "
|
1796 |
+
"also is changed, therefore uncheck this if you don't want to change the "
|
1797 |
+
"permalink"
|
1798 |
+
msgstr ""
|
1799 |
+
"El nombre de la publicación se actualizará con el título cuando el título de "
|
1800 |
+
"la lección o cuestionario cambie en las lecciones o en la pregunta del "
|
1801 |
+
"cuestionario<br />El permalink también cambiará, así que de-seleccione esta "
|
1802 |
+
"opción si no quiere que cambie el permalink"
|
1803 |
+
|
1804 |
+
#: inc/admin/settings/class-lp-settings-general.php:46
|
1805 |
+
msgid "Currency"
|
1806 |
+
msgstr "Moneda"
|
1807 |
+
|
1808 |
+
#: inc/admin/settings/class-lp-settings-general.php:53
|
1809 |
+
msgid "Currency position"
|
1810 |
+
msgstr "Moneda posición"
|
1811 |
+
|
1812 |
+
#: inc/admin/settings/class-lp-settings-general.php:60
|
1813 |
+
msgid "Thousands Separator"
|
1814 |
+
msgstr ""
|
1815 |
+
|
1816 |
+
#: inc/admin/settings/class-lp-settings-general.php:67
|
1817 |
+
msgid "Decimals Separator"
|
1818 |
+
msgstr ""
|
1819 |
+
|
1820 |
+
#: inc/admin/settings/class-lp-settings-general.php:74
|
1821 |
+
msgid "Number of Decimals"
|
1822 |
+
msgstr ""
|
1823 |
+
|
1824 |
+
#: inc/admin/settings/class-lp-settings-general.php:81
|
1825 |
+
msgid "Load css"
|
1826 |
+
msgstr ""
|
1827 |
+
|
1828 |
+
#: inc/admin/settings/class-lp-settings-general.php:85
|
1829 |
+
msgid "Load default stylesheet for LearnPress"
|
1830 |
+
msgstr "Cargar hoja de estilo por defecto para LearnPress"
|
1831 |
+
|
1832 |
+
#: inc/admin/settings/class-lp-settings-general.php:88
|
1833 |
+
msgid "Debug mode"
|
1834 |
+
msgstr ""
|
1835 |
+
|
1836 |
+
#: inc/admin/settings/class-lp-settings-general.php:92
|
1837 |
+
msgid "Turn on/off debug mode for developer"
|
1838 |
+
msgstr ""
|
1839 |
+
|
1840 |
+
#: inc/admin/settings/class-lp-settings-general.php:99
|
1841 |
+
msgid "Turn on/off courses extra thumbnail"
|
1842 |
+
msgstr ""
|
1843 |
+
|
1844 |
+
#: inc/admin/settings/class-lp-settings-pages.php:18
|
1845 |
+
#: inc/admin/settings/class-lp-settings-pages.php:49
|
1846 |
+
#: inc/admin/settings/class-lp-settings-profile.php:22
|
1847 |
+
msgid "Profile"
|
1848 |
+
msgstr "Perfil"
|
1849 |
+
|
1850 |
+
#: inc/admin/settings/class-lp-settings-pages.php:26
|
1851 |
+
#: inc/admin/settings/class-lp-settings-pages.php:157
|
1852 |
+
msgid "Become a teacher"
|
1853 |
+
msgstr "Registrarse para convertirse en un Mentor"
|
1854 |
+
|
1855 |
+
#: inc/admin/settings/class-lp-settings-pages.php:35
|
1856 |
+
msgid "Nicename"
|
1857 |
+
msgstr "Usuario"
|
1858 |
+
|
1859 |
+
#: inc/admin/settings/class-lp-settings-pages.php:36
|
1860 |
+
msgid "First name"
|
1861 |
+
msgstr "Nombre"
|
1862 |
+
|
1863 |
+
#: inc/admin/settings/class-lp-settings-pages.php:37
|
1864 |
+
msgid "Last name"
|
1865 |
+
msgstr "Apellido"
|
1866 |
+
|
1867 |
+
#: inc/admin/settings/class-lp-settings-pages.php:38
|
1868 |
+
#: templates/profile/tabs/edit.php:105
|
1869 |
+
msgid "Nickname"
|
1870 |
+
msgstr "Apodo"
|
1871 |
+
|
1872 |
+
#: inc/admin/settings/class-lp-settings-pages.php:39
|
1873 |
+
msgid "First name + Last name"
|
1874 |
+
msgstr "Nombre + Apellido"
|
1875 |
+
|
1876 |
+
#: inc/admin/settings/class-lp-settings-pages.php:40
|
1877 |
+
msgid "Last name + First name"
|
1878 |
+
msgstr "Nombre y apellidos"
|
1879 |
+
|
1880 |
+
#: inc/admin/settings/class-lp-settings-pages.php:56
|
1881 |
+
msgid "Add link to admin bar"
|
1882 |
+
msgstr "Añadir enlace a la barra de administración"
|
1883 |
+
|
1884 |
+
#: inc/admin/settings/class-lp-settings-pages.php:62
|
1885 |
+
msgid "Text link"
|
1886 |
+
msgstr ""
|
1887 |
+
|
1888 |
+
#: inc/admin/settings/class-lp-settings-pages.php:66
|
1889 |
+
msgid "Default: View Course Profile"
|
1890 |
+
msgstr "Por defecto: Ver Perfil del Curso"
|
1891 |
+
|
1892 |
+
#: inc/admin/settings/class-lp-settings-pages.php:70
|
1893 |
+
msgid "Target link"
|
1894 |
+
msgstr ""
|
1895 |
+
|
1896 |
+
#: inc/admin/settings/class-lp-settings-pages.php:75
|
1897 |
+
msgid "Self"
|
1898 |
+
msgstr "Identidad Propia"
|
1899 |
+
|
1900 |
+
#: inc/admin/settings/class-lp-settings-pages.php:76
|
1901 |
+
msgid "New window"
|
1902 |
+
msgstr "Ventana nueva"
|
1903 |
+
|
1904 |
+
#: inc/admin/settings/class-lp-settings-pages.php:97
|
1905 |
+
#: inc/admin/settings/class-lp-settings-pages.php:144
|
1906 |
+
msgid "Endpoints"
|
1907 |
+
msgstr "puntos externos"
|
1908 |
+
|
1909 |
+
#: inc/admin/settings/class-lp-settings-pages.php:101
|
1910 |
+
msgid "Tab Courses"
|
1911 |
+
msgstr "Pestaña Cursos"
|
1912 |
+
|
1913 |
+
#: inc/admin/settings/class-lp-settings-pages.php:106
|
1914 |
+
#: inc/admin/settings/class-lp-settings-pages.php:114
|
1915 |
+
#: inc/admin/settings/class-lp-settings-pages.php:122
|
1916 |
+
#: inc/admin/settings/class-lp-settings-pages.php:130
|
1917 |
+
#: inc/admin/settings/class-lp-settings-pages.php:153
|
1918 |
+
msgid "This is a slug and should be unique."
|
1919 |
+
msgstr "Este es un slug y debe ser unico."
|
1920 |
+
|
1921 |
+
#: inc/admin/settings/class-lp-settings-pages.php:106
|
1922 |
+
#: inc/admin/settings/class-lp-settings-pages.php:114
|
1923 |
+
#: inc/admin/settings/class-lp-settings-pages.php:122
|
1924 |
+
#: inc/admin/settings/class-lp-settings-pages.php:130
|
1925 |
+
#: inc/admin/settings/class-lp-settings-pages.php:153
|
1926 |
+
msgid "Example link is"
|
1927 |
+
msgstr "El enlace de ejemplo es"
|
1928 |
+
|
1929 |
+
#: inc/admin/settings/class-lp-settings-pages.php:109
|
1930 |
+
msgid "Tab Quizzes"
|
1931 |
+
msgstr "Pestaña de cuestionarios"
|
1932 |
+
|
1933 |
+
#: inc/admin/settings/class-lp-settings-pages.php:117
|
1934 |
+
msgid "Tab Orders"
|
1935 |
+
msgstr "Pestaña de compras"
|
1936 |
+
|
1937 |
+
#: inc/admin/settings/class-lp-settings-pages.php:125
|
1938 |
+
msgid "View order"
|
1939 |
+
msgstr "Ver pedido"
|
1940 |
+
|
1941 |
+
#: inc/admin/settings/class-lp-settings-pages.php:133
|
1942 |
+
msgid "Profile picture"
|
1943 |
+
msgstr "Imagen de perfil"
|
1944 |
+
|
1945 |
+
#: inc/admin/settings/class-lp-settings-pages.php:137
|
1946 |
+
msgid "Thumbnail size"
|
1947 |
+
msgstr ""
|
1948 |
+
|
1949 |
+
#: inc/admin/settings/class-lp-settings-pages.php:148
|
1950 |
+
msgid "Results"
|
1951 |
+
msgstr "Resultados"
|
1952 |
+
|
1953 |
+
#: inc/admin/sub-menus/addons.php:23
|
1954 |
+
msgid "LearnPress Add-ons"
|
1955 |
+
msgstr ""
|
1956 |
+
|
1957 |
+
#: inc/admin/sub-menus/addons.php:24
|
1958 |
+
msgid "Features add-ons that you can add or remove depending on your needs."
|
1959 |
+
msgstr ""
|
1960 |
+
"Características complementos que se pueden agregar o quitar dependiendo de "
|
1961 |
+
"sus necesidades."
|
1962 |
+
|
1963 |
+
#: inc/admin/sub-menus/addons.php:60
|
1964 |
+
msgid "Search..."
|
1965 |
+
msgstr "Buscar..."
|
1966 |
+
|
1967 |
+
#: inc/admin/sub-menus/settings.php:32
|
1968 |
+
msgid "LearnPress settings updated."
|
1969 |
+
msgstr "LearnPress configuración actualizados."
|
1970 |
+
|
1971 |
+
#: inc/admin/sub-menus/settings.php:38
|
1972 |
+
msgid "Settings changed. Updating..."
|
1973 |
+
msgstr "Configuración cambiada. Actualizando..."
|
1974 |
+
|
1975 |
+
#: inc/admin/sub-menus/settings.php:41
|
1976 |
+
msgid "Settings updated. Redirecting..."
|
1977 |
+
msgstr "Configuración actualizada. Redirigiendo ..."
|
1978 |
+
|
1979 |
+
#: inc/admin/sub-menus/settings.php:56
|
1980 |
+
msgid "Save settings"
|
1981 |
+
msgstr "Guardar ajustes"
|
1982 |
+
|
1983 |
+
#: inc/admin/sub-menus/settings.php:102
|
1984 |
+
msgid "Settings saved"
|
1985 |
+
msgstr "Configuraciones guardadas"
|
1986 |
+
|
1987 |
+
#: inc/admin/sub-menus/statistics.php:55
|
1988 |
+
msgid "Users"
|
1989 |
+
msgstr "Usuarios"
|
1990 |
+
|
1991 |
+
#: inc/admin/sub-menus/tools.php:31
|
1992 |
+
msgid "Sorry, you are nto allowed to access this page."
|
1993 |
+
msgstr "Lo siento, no tienes permiso para acceder a esta página."
|
1994 |
+
|
1995 |
+
#: inc/admin/sub-menus/tools.php:132
|
1996 |
+
msgid "All courses, lessons, quizzes and questions have been removed"
|
1997 |
+
msgstr "Todos los cursos, clases, pruebas y preguntas se han eliminado"
|
1998 |
+
|
1999 |
+
#: inc/admin/sub-menus/tools.php:198
|
2000 |
+
msgid "Outdated data from version less than 1.0 have been removed"
|
2001 |
+
msgstr "datos obsoletos de la versión inferior a 1,0 se han retirado"
|
2002 |
+
|
2003 |
+
#: inc/admin/sub-menus/tools.php:208
|
2004 |
+
msgid "Database"
|
2005 |
+
msgstr ""
|
2006 |
+
|
2007 |
+
#: inc/admin/sub-menus/tools.php:209
|
2008 |
+
msgid "Templates"
|
2009 |
+
msgstr ""
|
2010 |
+
|
2011 |
+
#: inc/admin/sub-menus/tools.php:217
|
2012 |
+
msgid "Upgrade courses"
|
2013 |
+
msgstr "Actualizar cursos"
|
2014 |
+
|
2015 |
+
#: inc/admin/sub-menus/tools.php:218
|
2016 |
+
msgid ""
|
2017 |
+
"Upgrade courses, lessons, quizzes and questions from version less than 1.0."
|
2018 |
+
msgstr ""
|
2019 |
+
|
2020 |
+
#: inc/admin/sub-menus/tools.php:220
|
2021 |
+
msgid ""
|
2022 |
+
"Use this action to force system to upgrade outdated data to latest version."
|
2023 |
+
msgstr ""
|
2024 |
+
"Utilice esta acción para forzar el sistema para actualizar datos obsoletos a "
|
2025 |
+
"la última versión."
|
2026 |
+
|
2027 |
+
#: inc/admin/sub-menus/tools.php:223
|
2028 |
+
msgid ""
|
2029 |
+
"All courses will be upgraded whether you have done this action in the past. "
|
2030 |
+
"So please remove all courses before you upgrade to prevent duplicated "
|
2031 |
+
"courses."
|
2032 |
+
msgstr ""
|
2033 |
+
"Todos los cursos se actualizarán aun si han hecho esta acción en el pasado. "
|
2034 |
+
"Así que por favor retire todos los cursos antes de actualizar para evitar "
|
2035 |
+
"que los cursos se dupliquen."
|
2036 |
+
|
2037 |
+
#: inc/admin/sub-menus/tools.php:226
|
2038 |
+
msgid "Upgrade"
|
2039 |
+
msgstr ""
|
2040 |
+
|
2041 |
+
#: inc/admin/sub-menus/tools.php:230
|
2042 |
+
msgid "Remove current data"
|
2043 |
+
msgstr ""
|
2044 |
+
|
2045 |
+
#: inc/admin/sub-menus/tools.php:231
|
2046 |
+
msgid "Remove all courses, lessons, quizzes and questions"
|
2047 |
+
msgstr "Eliminar todos los cursos, lecciones, cuestionarios y preguntas"
|
2048 |
+
|
2049 |
+
#: inc/admin/sub-menus/tools.php:234
|
2050 |
+
msgid "Be careful before using this action!"
|
2051 |
+
msgstr ""
|
2052 |
+
|
2053 |
+
#: inc/admin/sub-menus/tools.php:238 inc/admin/sub-menus/tools.php:255
|
2054 |
+
msgid "Check this box and click this button again to confirm."
|
2055 |
+
msgstr "Marque esta casilla y haga clic en este botón de nuevo para confirmar."
|
2056 |
+
|
2057 |
+
#: inc/admin/sub-menus/tools.php:241 inc/admin/sub-menus/tools.php:258
|
2058 |
+
#: inc/admin/views/meta-boxes/course/editor.php:18
|
2059 |
+
#: inc/admin/views/meta-boxes/course/editor.php:48
|
2060 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:44
|
2061 |
+
#: inc/admin/views/meta-boxes/question/header.php:13
|
2062 |
+
#: inc/admin/views/meta-boxes/quiz/question.php:36
|
2063 |
+
#: inc/libraries/meta-box/inc/fields/file-input.php:38
|
2064 |
+
#: inc/question/abstract-lp-question.php:653 templates/cart/form.php:72
|
2065 |
+
msgid "Remove"
|
2066 |
+
msgstr ""
|
2067 |
+
|
2068 |
+
#: inc/admin/sub-menus/tools.php:247
|
2069 |
+
msgid "Remove outdated data"
|
2070 |
+
msgstr ""
|
2071 |
+
|
2072 |
+
#: inc/admin/sub-menus/tools.php:248
|
2073 |
+
msgid ""
|
2074 |
+
"Remove all courses, lessons, quizzes and questions from version less than "
|
2075 |
+
"1.0."
|
2076 |
+
msgstr ""
|
2077 |
+
|
2078 |
+
#: inc/admin/sub-menus/tools.php:251
|
2079 |
+
msgid ""
|
2080 |
+
"Be careful before using this action! Only use this action in case all "
|
2081 |
+
"outdated data has been upgraded."
|
2082 |
+
msgstr ""
|
2083 |
+
|
2084 |
+
#: inc/admin/sub-menus/tools.php:311
|
2085 |
+
#, php-format
|
2086 |
+
msgid "Override Templates (%s)"
|
2087 |
+
msgstr ""
|
2088 |
+
|
2089 |
+
#: inc/admin/sub-menus/tools.php:319
|
2090 |
+
msgid "File"
|
2091 |
+
msgstr "Archivo"
|
2092 |
+
|
2093 |
+
#: inc/admin/sub-menus/tools.php:326
|
2094 |
+
msgid "Outdated"
|
2095 |
+
msgstr "Obsoleto"
|
2096 |
+
|
2097 |
+
#: inc/admin/sub-menus/tools.php:330
|
2098 |
+
msgid "Version"
|
2099 |
+
msgstr ""
|
2100 |
+
|
2101 |
+
#: inc/admin/sub-menus/tools.php:332
|
2102 |
+
msgid "Core version"
|
2103 |
+
msgstr ""
|
2104 |
+
|
2105 |
+
#: inc/admin/sub-menus/tools.php:357
|
2106 |
+
msgid "There is no template file has overwritten"
|
2107 |
+
msgstr ""
|
2108 |
+
|
2109 |
+
#: inc/admin/sub-menus/tools.php:406
|
2110 |
+
msgid "LearnPress Tools"
|
2111 |
+
msgstr ""
|
2112 |
+
|
2113 |
+
#: inc/admin/views/admin-template.php:4
|
2114 |
+
msgid "Type here to search item"
|
2115 |
+
msgstr ""
|
2116 |
+
|
2117 |
+
#: inc/admin/views/admin-template.php:12 inc/admin/views/admin-template.php:13
|
2118 |
+
#: inc/admin/views/meta-boxes/course/editor.php:19
|
2119 |
+
msgid "Add"
|
2120 |
+
msgstr "Añadir"
|
2121 |
+
|
2122 |
+
#: inc/admin/views/admin-template.php:15 inc/admin/views/admin-template.php:19
|
2123 |
+
msgid "Add and Close"
|
2124 |
+
msgstr "Añadir y Cerrar"
|
2125 |
+
|
2126 |
+
#: inc/admin/views/admin-template.php:26 inc/admin/views/admin-template.php:45
|
2127 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:76
|
2128 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:109
|
2129 |
+
#: inc/admin/views/meta-boxes/order/details.php:104
|
2130 |
+
#: inc/admin/views/meta-boxes/quiz/js-template.php:43
|
2131 |
+
msgid "Close"
|
2132 |
+
msgstr "Cerrar"
|
2133 |
+
|
2134 |
+
#: inc/admin/views/admin-template.php:35
|
2135 |
+
#: inc/admin/views/meta-boxes/quiz/question.php:31
|
2136 |
+
msgid "Duplicate"
|
2137 |
+
msgstr "Duplicar"
|
2138 |
+
|
2139 |
+
#: inc/admin/views/admin-template.php:35
|
2140 |
+
msgid "course"
|
2141 |
+
msgstr "curso"
|
2142 |
+
|
2143 |
+
#: inc/admin/views/admin-template.php:38 inc/admin/views/admin-template.php:41
|
2144 |
+
msgid "Duplicating ..."
|
2145 |
+
msgstr "Duplicando ..."
|
2146 |
+
|
2147 |
+
#: inc/admin/views/admin-template.php:38
|
2148 |
+
msgid "Duplicate course's curriculum"
|
2149 |
+
msgstr "Duplicar plan de estudios del curso"
|
2150 |
+
|
2151 |
+
#: inc/admin/views/admin-template.php:39
|
2152 |
+
msgid "All Content"
|
2153 |
+
msgstr "Todo el contenido"
|
2154 |
+
|
2155 |
+
#: inc/admin/views/admin-template.php:41
|
2156 |
+
msgid "Duplicate course no curriculum"
|
2157 |
+
msgstr "Duplicar curso sin ningún plan de estudios"
|
2158 |
+
|
2159 |
+
#: inc/admin/views/admin-template.php:42
|
2160 |
+
msgid "No Content"
|
2161 |
+
msgstr "Sin contenido"
|
2162 |
+
|
2163 |
+
#: inc/admin/views/html-admin-notice-templates.php:13
|
2164 |
+
#, php-format
|
2165 |
+
msgid ""
|
2166 |
+
"Your theme <strong>(%s)</strong> contains outdated copies of some LearnPress "
|
2167 |
+
"template files."
|
2168 |
+
msgstr ""
|
2169 |
+
"Su tema <strong>(%s)</strong> contiene copias no actualizadas de algunos "
|
2170 |
+
"archivos de plantilla LearnPress."
|
2171 |
+
|
2172 |
+
#: inc/admin/views/html-admin-notice-templates.php:15
|
2173 |
+
msgid ""
|
2174 |
+
"These files may need updating to ensure they are compatible with the current "
|
2175 |
+
"version of LearnPress. You can see which files are affected from the system "
|
2176 |
+
"status page. If in doubt, check with the author of the theme."
|
2177 |
+
msgstr ""
|
2178 |
+
"Estos archivos pueden ser actualizadas para garantizar que son compatibles "
|
2179 |
+
"con la versión actual de LearnPress. Usted puede ver qué archivos se ven "
|
2180 |
+
"afectados desde la página de estado del sistema. En caso de duda, consulte "
|
2181 |
+
"con el autor del tema."
|
2182 |
+
|
2183 |
+
#: inc/admin/views/html-admin-notice-templates.php:17
|
2184 |
+
msgid "View list of outdated templates"
|
2185 |
+
msgstr "Ver lista de plantillas obsoletas"
|
2186 |
+
|
2187 |
+
#: inc/admin/views/html-admin-notice-templates.php:18
|
2188 |
+
#: inc/custom-post-types/course.php:159 inc/custom-post-types/quiz.php:159
|
2189 |
+
msgid "Hide"
|
2190 |
+
msgstr "Ocultar"
|
2191 |
+
|
2192 |
+
#: inc/admin/views/meta-boxes/course/curriculum.php:9
|
2193 |
+
msgid "Outline your course and add content with sections, lessons and quizzes."
|
2194 |
+
msgstr "Delinear tu curso y añadir contenido con secciones, clases y exámenes."
|
2195 |
+
|
2196 |
+
#: inc/admin/views/meta-boxes/course/curriculum.php:12
|
2197 |
+
#: inc/admin/views/meta-boxes/quiz/questions.php:17
|
2198 |
+
msgid "Expand All"
|
2199 |
+
msgstr "Expandir todo"
|
2200 |
+
|
2201 |
+
#: inc/admin/views/meta-boxes/course/curriculum.php:13
|
2202 |
+
#: inc/admin/views/meta-boxes/quiz/questions.php:18
|
2203 |
+
msgid "Collapse All"
|
2204 |
+
msgstr "Contraer todo"
|
2205 |
+
|
2206 |
+
#: inc/admin/views/meta-boxes/course/editor.php:7
|
2207 |
+
msgid "Add Section"
|
2208 |
+
msgstr "Añadir Sección"
|
2209 |
+
|
2210 |
+
#: inc/admin/views/meta-boxes/course/editor.php:15
|
2211 |
+
msgid "New section title"
|
2212 |
+
msgstr "Nuevo título de sección"
|
2213 |
+
|
2214 |
+
#: inc/admin/views/meta-boxes/course/editor.php:29
|
2215 |
+
msgid "New quiz name"
|
2216 |
+
msgstr "Nuevo tipo de examen"
|
2217 |
+
|
2218 |
+
#: inc/admin/views/meta-boxes/course/editor.php:30
|
2219 |
+
msgid "New lesson name"
|
2220 |
+
msgstr "Nuevo nombre lección"
|
2221 |
+
|
2222 |
+
#: inc/admin/views/meta-boxes/course/editor.php:32
|
2223 |
+
msgid "Add Content"
|
2224 |
+
msgstr "Añadir contenido"
|
2225 |
+
|
2226 |
+
#: inc/admin/views/meta-boxes/course/editor.php:33
|
2227 |
+
msgid "Add Existing Content"
|
2228 |
+
msgstr "Añadir el contenido existente"
|
2229 |
+
|
2230 |
+
#: inc/admin/views/meta-boxes/course/editor.php:45
|
2231 |
+
msgid "New item title"
|
2232 |
+
msgstr "Nuevo elemento de título"
|
2233 |
+
|
2234 |
+
#: inc/admin/views/meta-boxes/course/editor.php:49
|
2235 |
+
msgid "Quick edit"
|
2236 |
+
msgstr "Edición rápida"
|
2237 |
+
|
2238 |
+
#: inc/admin/views/meta-boxes/course/editor.php:58
|
2239 |
+
msgid "Title"
|
2240 |
+
msgstr "Título"
|
2241 |
+
|
2242 |
+
#: inc/admin/views/meta-boxes/course/editor.php:62
|
2243 |
+
#: inc/custom-post-types/course.php:1290 inc/custom-post-types/course.php:1296
|
2244 |
+
msgid "Content"
|
2245 |
+
msgstr "Contenido"
|
2246 |
+
|
2247 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:6
|
2248 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:14
|
2249 |
+
#: inc/custom-post-types/question.php:223 inc/custom-post-types/quiz.php:290
|
2250 |
+
msgid "Add [Enter]"
|
2251 |
+
msgstr "Añadir [Enter]"
|
2252 |
+
|
2253 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:54
|
2254 |
+
msgid "Type here to search lesson"
|
2255 |
+
msgstr "Escribe aquí para buscar"
|
2256 |
+
|
2257 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:55
|
2258 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:88
|
2259 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:71
|
2260 |
+
#: inc/admin/views/meta-boxes/quiz/js-template.php:6
|
2261 |
+
#: inc/admin/views/meta-boxes/quiz/questions.php:36
|
2262 |
+
#: inc/custom-post-types/course.php:456 inc/custom-post-types/lesson.php:64
|
2263 |
+
#: inc/custom-post-types/order.php:419 inc/custom-post-types/question.php:100
|
2264 |
+
msgid "Add New"
|
2265 |
+
msgstr "Añadir Nuevo"
|
2266 |
+
|
2267 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:73
|
2268 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:106
|
2269 |
+
#: inc/admin/views/meta-boxes/order/details.php:102
|
2270 |
+
#: inc/admin/views/meta-boxes/quiz/js-template.php:40
|
2271 |
+
msgid "No results"
|
2272 |
+
msgstr "Sin resultados"
|
2273 |
+
|
2274 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:75
|
2275 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:108
|
2276 |
+
msgid "Add to section"
|
2277 |
+
msgstr "Añadir a sección"
|
2278 |
+
|
2279 |
+
#: inc/admin/views/meta-boxes/course/js-template.php:87
|
2280 |
+
msgid "Type here to search quiz"
|
2281 |
+
msgstr "Escribe aquí para buscar"
|
2282 |
+
|
2283 |
+
#: inc/admin/views/meta-boxes/course/loop-item.php:32
|
2284 |
+
#, php-format
|
2285 |
+
msgid "Switch to %s"
|
2286 |
+
msgstr "Cambiar a %s"
|
2287 |
+
|
2288 |
+
#: inc/admin/views/meta-boxes/course/loop-item.php:39
|
2289 |
+
msgid "Add new item here and press Enter"
|
2290 |
+
msgstr "Añadir un nuevo artículo aquí y pulse Intro"
|
2291 |
+
|
2292 |
+
#: inc/admin/views/meta-boxes/course/loop-item.php:49
|
2293 |
+
#: inc/custom-post-types/course.php:405
|
2294 |
+
msgid "Are you sure you want to remove this item?"
|
2295 |
+
msgstr "Estás seguro de que desea eliminar esto?"
|
2296 |
+
|
2297 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:33
|
2298 |
+
msgid "Enter section name and hit enter"
|
2299 |
+
msgstr "ingresa el nombre de la sección y presiona enter"
|
2300 |
+
|
2301 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:35
|
2302 |
+
#: inc/admin/views/meta-boxes/question/header.php:14
|
2303 |
+
#: inc/admin/views/meta-boxes/quiz/question.php:28
|
2304 |
+
#: inc/question/abstract-lp-question.php:654
|
2305 |
+
msgid "Expand"
|
2306 |
+
msgstr "Expandir"
|
2307 |
+
|
2308 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:36
|
2309 |
+
#: inc/admin/views/meta-boxes/question/header.php:15
|
2310 |
+
#: inc/admin/views/meta-boxes/quiz/question.php:29
|
2311 |
+
#: inc/question/abstract-lp-question.php:655
|
2312 |
+
msgid "Collapse"
|
2313 |
+
msgstr "Colapsar"
|
2314 |
+
|
2315 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:37
|
2316 |
+
msgid "Are you sure you want to remove this section?"
|
2317 |
+
msgstr "¿Está seguro que quiere eliminar esta sección?"
|
2318 |
+
|
2319 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:43
|
2320 |
+
msgid "Describe about this section"
|
2321 |
+
msgstr "Describe esta sección"
|
2322 |
+
|
2323 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:44
|
2324 |
+
msgid "Are you sure you want to remove these items from section?"
|
2325 |
+
msgstr "¿Está seguro de que desea eliminar estos artículos de la sección?"
|
2326 |
+
|
2327 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:46
|
2328 |
+
msgid "Delete Forever"
|
2329 |
+
msgstr "Borrar para siempre"
|
2330 |
+
|
2331 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:69
|
2332 |
+
msgid "Add new lesson or quiz and press Enter"
|
2333 |
+
msgstr "Añadir nueva lección o un cuestionario y pulsa Enter"
|
2334 |
+
|
2335 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:81
|
2336 |
+
#: inc/admin/views/meta-boxes/quiz/questions.php:46
|
2337 |
+
msgid "-OR-"
|
2338 |
+
msgstr "-O-"
|
2339 |
+
|
2340 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:85
|
2341 |
+
#, php-format
|
2342 |
+
msgid "Select %s"
|
2343 |
+
msgstr "Seleccionar %s"
|
2344 |
+
|
2345 |
+
#: inc/admin/views/meta-boxes/course/loop-section.php:90
|
2346 |
+
msgid "Select Quizzes"
|
2347 |
+
msgstr "Seleccionar Exámenes"
|
2348 |
+
|
2349 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:25
|
2350 |
+
#: inc/custom-post-types/course.php:407
|
2351 |
+
msgid "Your course is pending for reviewing"
|
2352 |
+
msgstr "Tu curso está pendiente de revisión"
|
2353 |
+
|
2354 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:27
|
2355 |
+
msgid ""
|
2356 |
+
"Your course will not be submitted for reviewing until you check 'Submit for "
|
2357 |
+
"Review'"
|
2358 |
+
msgstr ""
|
2359 |
+
"Tu curso no se someterá a la revisión hasta que marques 'Enviar a revisión'"
|
2360 |
+
|
2361 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:34
|
2362 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:42
|
2363 |
+
msgid "Message to Reviewer"
|
2364 |
+
msgstr "Mensaje para el Revisor"
|
2365 |
+
|
2366 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:40
|
2367 |
+
msgid ""
|
2368 |
+
"Warning! Your course will become Pending Review for admins to review before "
|
2369 |
+
"it can be published when you update."
|
2370 |
+
msgstr ""
|
2371 |
+
"¡Advertencia! Tu curso se convertirá en pendiente de revisión para los "
|
2372 |
+
"administradores que revisen antes de que pueda publicarse en el momento de "
|
2373 |
+
"actualizar."
|
2374 |
+
|
2375 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:48
|
2376 |
+
msgid "This course is pending for reviewing"
|
2377 |
+
msgstr "Este curso está pendiente de revisión"
|
2378 |
+
|
2379 |
+
#: inc/admin/views/meta-boxes/course/review-log.php:51
|
2380 |
+
msgid "Message to Instructor"
|
2381 |
+
msgstr "Mensaje para el instructor"
|
2382 |
+
|
2383 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:7
|
2384 |
+
#, php-format
|
2385 |
+
msgctxt "learnpress"
|
2386 |
+
msgid "%d review"
|
2387 |
+
msgid_plural "%d reviews"
|
2388 |
+
msgstr[0] "%d revisión"
|
2389 |
+
msgstr[1] "%d revisiones"
|
2390 |
+
|
2391 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:9
|
2392 |
+
msgid "This course has not got any reviews yet"
|
2393 |
+
msgstr "Este curso no tiene ninguna crítica"
|
2394 |
+
|
2395 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:25
|
2396 |
+
msgid "Rejected"
|
2397 |
+
msgstr "Rechazado"
|
2398 |
+
|
2399 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:25
|
2400 |
+
msgid "Submit for review"
|
2401 |
+
msgstr "Enviar para revisión"
|
2402 |
+
|
2403 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:31
|
2404 |
+
#: inc/libraries/meta-box/inc/fields/autocomplete.php:15
|
2405 |
+
#: inc/libraries/meta-box/inc/fields/autocomplete.php:66
|
2406 |
+
msgid "Delete"
|
2407 |
+
msgstr "Borrar"
|
2408 |
+
|
2409 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:40
|
2410 |
+
msgid "View less"
|
2411 |
+
msgstr "Ver Menos"
|
2412 |
+
|
2413 |
+
#: inc/admin/views/meta-boxes/course/review-logs.php:42
|
2414 |
+
msgid "View all"
|
2415 |
+
msgstr "Ver todo"
|
2416 |
+
|
2417 |
+
#: inc/admin/views/meta-boxes/order/actions.php:7
|
2418 |
+
msgid "M j, Y @ H:i"
|
2419 |
+
msgstr ""
|
2420 |
+
|
2421 |
+
#: inc/admin/views/meta-boxes/order/actions.php:10
|
2422 |
+
#, php-format
|
2423 |
+
msgid "Scheduled for: <b>%1$s</b>"
|
2424 |
+
msgstr ""
|
2425 |
+
|
2426 |
+
#: inc/admin/views/meta-boxes/order/actions.php:12
|
2427 |
+
#, php-format
|
2428 |
+
msgid "Order date: <b>%1$s</b>"
|
2429 |
+
msgstr "Fecha de compra: <b>%1$s</b>"
|
2430 |
+
|
2431 |
+
#: inc/admin/views/meta-boxes/order/actions.php:14
|
2432 |
+
#: inc/admin/views/meta-boxes/order/actions.php:22
|
2433 |
+
msgid "Publish <b>immediately</b>"
|
2434 |
+
msgstr "Publicar <b>inmediatamente</b>"
|
2435 |
+
|
2436 |
+
#: inc/admin/views/meta-boxes/order/actions.php:16
|
2437 |
+
#, php-format
|
2438 |
+
msgid "Schedule for: <b>%1$s</b>"
|
2439 |
+
msgstr "Programar para: <b>%1$s</b>"
|
2440 |
+
|
2441 |
+
#: inc/admin/views/meta-boxes/order/actions.php:18
|
2442 |
+
#, php-format
|
2443 |
+
msgid "Publish on: <b>%1$s</b>"
|
2444 |
+
msgstr "Publicar en: <b>%1$s</b>"
|
2445 |
+
|
2446 |
+
#: inc/admin/views/meta-boxes/order/actions.php:34
|
2447 |
+
msgid "Order status"
|
2448 |
+
msgstr "Estado del pedido"
|
2449 |
+
|
2450 |
+
#: inc/admin/views/meta-boxes/order/actions.php:54
|
2451 |
+
msgid "Customer"
|
2452 |
+
msgstr "Cliente"
|
2453 |
+
|
2454 |
+
#: inc/admin/views/meta-boxes/order/actions.php:63
|
2455 |
+
#: inc/order/class-lp-order.php:236
|
2456 |
+
msgid "[Guest]"
|
2457 |
+
msgstr "[Invitado]"
|
2458 |
+
|
2459 |
+
#: inc/admin/views/meta-boxes/order/actions.php:78
|
2460 |
+
msgid "Edit date and time"
|
2461 |
+
msgstr "Editar Fecha y hora"
|
2462 |
+
|
2463 |
+
#: inc/admin/views/meta-boxes/order/actions.php:80
|
2464 |
+
msgid "Date and time"
|
2465 |
+
msgstr "Fecha y hora"
|
2466 |
+
|
2467 |
+
#: inc/admin/views/meta-boxes/order/actions.php:91
|
2468 |
+
msgid "Delete Permanently"
|
2469 |
+
msgstr "Borrar Permanentemente"
|
2470 |
+
|
2471 |
+
#: inc/admin/views/meta-boxes/order/actions.php:93
|
2472 |
+
msgid "Move to Trash"
|
2473 |
+
msgstr "Enviar a Papelera"
|
2474 |
+
|
2475 |
+
#: inc/admin/views/meta-boxes/order/details.php:11
|
2476 |
+
#, php-format
|
2477 |
+
msgid "Order %s"
|
2478 |
+
msgstr "Pedido %s"
|
2479 |
+
|
2480 |
+
#: inc/admin/views/meta-boxes/order/details.php:14
|
2481 |
+
#, php-format
|
2482 |
+
msgid "Date %s"
|
2483 |
+
msgstr "Fecha %s"
|
2484 |
+
|
2485 |
+
#: inc/admin/views/meta-boxes/order/details.php:15
|
2486 |
+
#, php-format
|
2487 |
+
msgid "Status %s"
|
2488 |
+
msgstr "Estado %s"
|
2489 |
+
|
2490 |
+
#: inc/admin/views/meta-boxes/order/details.php:36
|
2491 |
+
#: inc/custom-post-types/order.php:378
|
2492 |
+
#, php-format
|
2493 |
+
msgid "Pay via <strong>%s</strong>"
|
2494 |
+
msgstr "Pagar con <strong>%s</strong>"
|
2495 |
+
|
2496 |
+
#: inc/admin/views/meta-boxes/order/details.php:43
|
2497 |
+
msgid "Order Items"
|
2498 |
+
msgstr "Elementos del pedido"
|
2499 |
+
|
2500 |
+
#: inc/admin/views/meta-boxes/order/details.php:48
|
2501 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:433
|
2502 |
+
msgid "Item"
|
2503 |
+
msgstr "Producto"
|
2504 |
+
|
2505 |
+
#: inc/admin/views/meta-boxes/order/details.php:49
|
2506 |
+
msgid "Cost"
|
2507 |
+
msgstr "Costo"
|
2508 |
+
|
2509 |
+
#: inc/admin/views/meta-boxes/order/details.php:50
|
2510 |
+
#: templates/emails/order-items-table.php:20
|
2511 |
+
msgid "Quantity"
|
2512 |
+
msgstr "Cantidad"
|
2513 |
+
|
2514 |
+
#: inc/admin/views/meta-boxes/order/details.php:51
|
2515 |
+
msgid "Amount"
|
2516 |
+
msgstr "Cantidad"
|
2517 |
+
|
2518 |
+
#: inc/admin/views/meta-boxes/order/details.php:61
|
2519 |
+
msgid "No order items"
|
2520 |
+
msgstr "No hay elementos en el pedido"
|
2521 |
+
|
2522 |
+
#: inc/admin/views/meta-boxes/order/details.php:66
|
2523 |
+
msgid "Sub Total"
|
2524 |
+
msgstr "Subtotal"
|
2525 |
+
|
2526 |
+
#: inc/admin/views/meta-boxes/order/details.php:74
|
2527 |
+
#: inc/custom-post-types/order.php:307 templates/cart/form.php:31
|
2528 |
+
#: templates/cart/form.php:100 templates/checkout/order-received.php:32
|
2529 |
+
#: templates/checkout/review-order.php:27
|
2530 |
+
#: templates/checkout/review-order.php:66 templates/order/order-details.php:18
|
2531 |
+
#: templates/order/order-details.php:54 templates/profile/tabs/orders.php:18
|
2532 |
+
msgid "Total"
|
2533 |
+
msgstr ""
|
2534 |
+
|
2535 |
+
#: inc/admin/views/meta-boxes/order/details.php:83
|
2536 |
+
msgid "Add Item"
|
2537 |
+
msgstr "Añadir elemento"
|
2538 |
+
|
2539 |
+
#: inc/admin/views/meta-boxes/order/details.php:84
|
2540 |
+
msgid "Calculate Total"
|
2541 |
+
msgstr "Calcular total"
|
2542 |
+
|
2543 |
+
#: inc/admin/views/meta-boxes/order/details.php:92
|
2544 |
+
msgid "Customer Note"
|
2545 |
+
msgstr "Nota del Comprador"
|
2546 |
+
|
2547 |
+
#: inc/admin/views/meta-boxes/order/details.php:99
|
2548 |
+
msgid "Type here to search the course"
|
2549 |
+
msgstr "Escribe aquí para buscar"
|
2550 |
+
|
2551 |
+
#: inc/admin/views/meta-boxes/question/multi-choice-options.php:18
|
2552 |
+
#: inc/admin/views/meta-boxes/question/single-choice-options.php:17
|
2553 |
+
#: inc/question/class-lp-question-multi-choice.php:119
|
2554 |
+
msgid "Answer Text"
|
2555 |
+
msgstr "Respuesta Texto."
|
2556 |
+
|
2557 |
+
#: inc/admin/views/meta-boxes/question/multi-choice-options.php:19
|
2558 |
+
#: inc/admin/views/meta-boxes/question/single-choice-options.php:18
|
2559 |
+
#: inc/question/class-lp-question-multi-choice.php:118
|
2560 |
+
msgid "Is Correct?"
|
2561 |
+
msgstr "Es correcto?"
|
2562 |
+
|
2563 |
+
#: inc/admin/views/meta-boxes/question/multi-choice-options.php:62
|
2564 |
+
#: inc/admin/views/meta-boxes/question/single-choice-options.php:64
|
2565 |
+
#, php-format
|
2566 |
+
msgid ""
|
2567 |
+
"<button class=\"button add-question-option-button add-question-option-button-"
|
2568 |
+
"%1$d\" data-id=\"%1$d\" type=\"button\">%2$s</button>"
|
2569 |
+
msgstr ""
|
2570 |
+
|
2571 |
+
#: inc/admin/views/meta-boxes/question/multi-choice-options.php:64
|
2572 |
+
#: inc/admin/views/meta-boxes/question/single-choice-options.php:66
|
2573 |
+
msgid "Add Option"
|
2574 |
+
msgstr "Agregar Opción"
|
2575 |
+
|
2576 |
+
#: inc/admin/views/meta-boxes/question/none.php:2
|
2577 |
+
msgid "Please select a type for this question"
|
2578 |
+
msgstr "Selección una pregunta"
|
2579 |
+
|
2580 |
+
#: inc/admin/views/meta-boxes/quiz/js-template.php:4
|
2581 |
+
msgid "Type here to search the questions"
|
2582 |
+
msgstr "Escribe aquí para buscar"
|
2583 |
+
|
2584 |
+
#: inc/admin/views/meta-boxes/quiz/js-template.php:27
|
2585 |
+
msgid "(Untitled)"
|
2586 |
+
msgstr "(Sin título)"
|
2587 |
+
|
2588 |
+
#: inc/admin/views/meta-boxes/quiz/js-template.php:42
|
2589 |
+
msgid "Add to quiz"
|
2590 |
+
msgstr "Añadir al cuestionario"
|
2591 |
+
|
2592 |
+
#: inc/admin/views/meta-boxes/quiz/question.php:14
|
2593 |
+
msgid "Load question failed!"
|
2594 |
+
msgstr "¡ Error en la carga de pregunta!"
|
2595 |
+
|
2596 |
+
#: inc/admin/views/meta-boxes/quiz/question.php:35
|
2597 |
+
msgid "Are you sure you want to remove this question?"
|
2598 |
+
msgstr "Estás seguro de que quieres eliminar esta pregunta?"
|
2599 |
+
|
2600 |
+
#: inc/admin/views/meta-boxes/quiz/questions.php:15
|
2601 |
+
#: inc/custom-post-types/question.php:97 inc/custom-post-types/quiz.php:127
|
2602 |
+
#: inc/custom-post-types/quiz.php:317
|
2603 |
+
msgid "Questions"
|
2604 |
+
msgstr "Preguntas"
|
2605 |
+
|
2606 |
+
#: inc/admin/views/meta-boxes/quiz/questions.php:34
|
2607 |
+
msgid "Add question title and press Enter"
|
2608 |
+
msgstr "Añadir título de la pregunta y pulsar ENTER"
|
2609 |
+
|
2610 |
+
#: inc/admin/views/meta-boxes/quiz/questions.php:47
|
2611 |
+
msgid "Add Existing Question"
|
2612 |
+
msgstr "Añadir Pregunta Existente"
|
2613 |
+
|
2614 |
+
#: inc/admin/views/settings/payments.php:17
|
2615 |
+
#: inc/admin/views/settings/emails/become-a-teacher.php:23
|
2616 |
+
#: inc/admin/views/settings/emails/enrolled-course.php:24
|
2617 |
+
#: inc/admin/views/settings/emails/finished-course.php:24
|
2618 |
+
#: inc/admin/views/settings/emails/new-course.php:25
|
2619 |
+
#: inc/admin/views/settings/emails/new-order-customer.php:25
|
2620 |
+
#: inc/admin/views/settings/emails/new-order.php:24
|
2621 |
+
#: inc/admin/views/settings/emails/published-course.php:21
|
2622 |
+
#: inc/admin/views/settings/emails/rejected-course.php:25
|
2623 |
+
#: inc/admin/views/settings/emails/user-order-completed.php:24
|
2624 |
+
msgid "Enable"
|
2625 |
+
msgstr "Activar"
|
2626 |
+
|
2627 |
+
#: inc/admin/views/settings/payments.php:24
|
2628 |
+
#: inc/custom-post-types/question.php:245
|
2629 |
+
msgid "Type"
|
2630 |
+
msgstr "Tipo"
|
2631 |
+
|
2632 |
+
#: inc/admin/views/settings/payments.php:27
|
2633 |
+
msgid "Basic"
|
2634 |
+
msgstr "Básico"
|
2635 |
+
|
2636 |
+
#: inc/admin/views/settings/payments.php:28
|
2637 |
+
msgid "Security"
|
2638 |
+
msgstr "Seguridad"
|
2639 |
+
|
2640 |
+
#: inc/admin/views/settings/payments.php:33
|
2641 |
+
msgid "Email Address"
|
2642 |
+
msgstr "Dirección de correo electrónico"
|
2643 |
+
|
2644 |
+
#: inc/admin/views/settings/payments.php:42
|
2645 |
+
msgid "API Username"
|
2646 |
+
msgstr "Usuario API"
|
2647 |
+
|
2648 |
+
#: inc/admin/views/settings/payments.php:49
|
2649 |
+
msgid "API Password"
|
2650 |
+
msgstr "Contraseña API"
|
2651 |
+
|
2652 |
+
#: inc/admin/views/settings/payments.php:56
|
2653 |
+
msgid "API Signature"
|
2654 |
+
msgstr "Firma API"
|
2655 |
+
|
2656 |
+
#: inc/admin/views/settings/payments.php:68
|
2657 |
+
msgid "Sandbox Mode"
|
2658 |
+
msgstr ""
|
2659 |
+
|
2660 |
+
#: inc/admin/views/settings/payments.php:76
|
2661 |
+
msgid "Sandbox Email Address"
|
2662 |
+
msgstr ""
|
2663 |
+
|
2664 |
+
#: inc/admin/views/settings/payments.php:85
|
2665 |
+
msgid "Sandbox API Username"
|
2666 |
+
msgstr ""
|
2667 |
+
|
2668 |
+
#: inc/admin/views/settings/payments.php:93
|
2669 |
+
msgid "Sandbox API Password"
|
2670 |
+
msgstr ""
|
2671 |
+
|
2672 |
+
#: inc/admin/views/settings/payments.php:101
|
2673 |
+
msgid "Sandbox API Signature"
|
2674 |
+
msgstr ""
|
2675 |
+
|
2676 |
+
#: inc/admin/views/settings/setting-field.php:96
|
2677 |
+
msgid ""
|
2678 |
+
"The settings of this image size have been disabled because its values are "
|
2679 |
+
"being overwritten by a filter."
|
2680 |
+
msgstr ""
|
2681 |
+
"Los ajustes de este tamaños de imagen se han desactivado porque sus valores "
|
2682 |
+
"los ha sobreescrito un filtro."
|
2683 |
+
|
2684 |
+
#: inc/admin/views/settings/setting-field.php:108
|
2685 |
+
msgid "Hard Crop?"
|
2686 |
+
msgstr ""
|
2687 |
+
|
2688 |
+
#: inc/admin/views/settings/emails/become-a-teacher.php:28
|
2689 |
+
msgid "Send notification to user when accept"
|
2690 |
+
msgstr "Enviar una notificación al usuario cuando acepte"
|
2691 |
+
|
2692 |
+
#: inc/admin/views/settings/emails/become-a-teacher.php:32
|
2693 |
+
#: inc/admin/views/settings/emails/enrolled-course.php:32
|
2694 |
+
#: inc/admin/views/settings/emails/finished-course.php:32
|
2695 |
+
#: inc/admin/views/settings/emails/new-course.php:46
|
2696 |
+
#: inc/admin/views/settings/emails/new-order-customer.php:33
|
2697 |
+
#: inc/admin/views/settings/emails/new-order.php:45
|
2698 |
+
#: inc/admin/views/settings/emails/published-course.php:29
|
2699 |
+
#: inc/admin/views/settings/emails/rejected-course.php:33
|
2700 |
+
#: inc/admin/views/settings/emails/user-order-completed.php:32
|
2701 |
+
msgid "Subject"
|
2702 |
+
msgstr "Asunto"
|
2703 |
+
|
2704 |
+
#: inc/admin/views/settings/emails/become-a-teacher.php:36
|
2705 |
+
msgid "Email subject"
|
2706 |
+
msgstr "Asunto del correo"
|
2707 |
+
|
2708 |
+
#: inc/admin/views/settings/emails/become-a-teacher.php:41
|
2709 |
+
#: inc/admin/views/settings/emails/enrolled-course.php:43
|
2710 |
+
#: inc/admin/views/settings/emails/finished-course.php:43
|
2711 |
+
#: inc/admin/views/settings/emails/new-course.php:57
|
2712 |
+
#: inc/admin/views/settings/emails/new-order-customer.php:45
|
2713 |
+
#: inc/admin/views/settings/emails/new-order.php:57
|
2714 |
+
#: inc/admin/views/settings/emails/published-course.php:40
|
2715 |
+
#: inc/admin/views/settings/emails/rejected-course.php:44
|
2716 |
+
#: inc/admin/views/settings/emails/user-order-completed.php:44
|
2717 |
+
msgid "Heading"
|
2718 |
+
msgstr "Encabezado"
|
2719 |
+
|
2720 |
+
#: inc/admin/views/settings/emails/become-a-teacher.php:46
|
2721 |
+
#: inc/admin/views/settings/emails/enrolled-course.php:48
|
2722 |
+
#: inc/admin/views/settings/emails/finished-course.php:48
|
2723 |
+
#: inc/admin/views/settings/emails/new-order-customer.php:51
|
2724 |
+
#: inc/admin/views/settings/emails/new-order.php:63
|
2725 |
+
#: inc/admin/views/settings/emails/published-course.php:45
|
2726 |
+
#: inc/admin/views/settings/emails/rejected-course.php:49
|
2727 |
+
#: inc/admin/views/settings/emails/user-order-completed.php:50
|
2728 |
+
#, php-format
|
2729 |
+
msgid "Email heading, default: <code>%s</code>"
|
2730 |
+
msgstr "Encabezado por default del email: <code>%s</code>"
|
2731 |
+
|
2732 |
+
#: inc/admin/views/settings/emails/email-template.php:6
|
2733 |
+
#: inc/admin/views/settings/emails/_email-template.php:3
|
2734 |
+
msgid "Email content"
|
2735 |
+
msgstr "Contenido del Email"
|
2736 |
+
|
2737 |
+
#: inc/admin/views/settings/emails/email-template.php:13
|
2738 |
+
#: inc/admin/views/settings/emails/_email-template.php:11
|
2739 |
+
msgid "HTML template"
|
2740 |
+
msgstr ""
|
2741 |
+
|
2742 |
+
#: inc/admin/views/settings/emails/email-template.php:14
|
2743 |
+
#: inc/admin/views/settings/emails/_email-template.php:12
|
2744 |
+
msgid "Plain text template"
|
2745 |
+
msgstr ""
|
2746 |
+
|
2747 |
+
#: inc/admin/views/settings/emails/email-template.php:44
|
2748 |
+
#: inc/admin/views/settings/emails/_email-template.php:28
|
2749 |
+
#, php-format
|
2750 |
+
msgid ""
|
2751 |
+
"This template has been overridden by your theme and can be found in: <code>"
|
2752 |
+
"%s</code>. Please open the file in an editor program to edit"
|
2753 |
+
msgstr ""
|
2754 |
+
"Esta plantilla se ha reemplazado por su tema y se puede encontrar en: <code>"
|
2755 |
+
"%s</code> . Por favor, abra el archivo en un programa de edición para editar"
|
2756 |
+
|
2757 |
+
#: inc/admin/views/settings/emails/email-template.php:68
|
2758 |
+
msgid "Click on variables to add it into email content"
|
2759 |
+
msgstr ""
|
2760 |
+
"Haga clic sobre las variables para agregarlo a contenido del correo "
|
2761 |
+
"electrónico"
|
2762 |
+
|
2763 |
+
#: inc/admin/views/settings/emails/email-template.php:77
|
2764 |
+
#: inc/admin/views/settings/emails/_email-template.php:70
|
2765 |
+
#, php-format
|
2766 |
+
msgid ""
|
2767 |
+
"To override and edit this email template copy <code>%s</code> to your theme "
|
2768 |
+
"folder: <code>%s</code>."
|
2769 |
+
msgstr ""
|
2770 |
+
"Para sobreescribir y editar esta plantilla de correo electrónico, copie "
|
2771 |
+
"<code>%s</code> a la carpeta de su tema: <code>%s</code>."
|
2772 |
+
|
2773 |
+
#: inc/admin/views/settings/emails/enrolled-course.php:15
|
2774 |
+
#: inc/emails/class-lp-email-enrolled-course.php:20
|
2775 |
+
#: inc/emails/class-lp-email-enrolled-course.php:26
|
2776 |
+
msgid "Enrolled course"
|
2777 |
+
msgstr "Inscrito al Curso"
|
2778 |
+
|
2779 |
+
#: inc/admin/views/settings/emails/enrolled-course.php:17
|
2780 |
+
msgid "Send this email to user when they enroll in the course."
|
2781 |
+
msgstr "Envíe este correo electrónico al usuario cuando se inscriban al curso"
|
2782 |
+
|
2783 |
+
#: inc/admin/views/settings/emails/enrolled-course.php:37
|
2784 |
+
#, php-format
|
2785 |
+
msgid "Email subject , default: <code>%s</code>"
|
2786 |
+
msgstr "Asunto del correo electrónico, por defecto: <code>%s</code>"
|
2787 |
+
|
2788 |
+
#: inc/admin/views/settings/emails/enrolled-course.php:55
|
2789 |
+
#: inc/admin/views/settings/emails/finished-course.php:54
|
2790 |
+
#: inc/admin/views/settings/emails/new-course.php:69
|
2791 |
+
#: inc/admin/views/settings/emails/new-order-customer.php:58
|
2792 |
+
#: inc/admin/views/settings/emails/new-order.php:69
|
2793 |
+
#: inc/admin/views/settings/emails/published-course.php:51
|
2794 |
+
#: inc/admin/views/settings/emails/rejected-course.php:55
|
2795 |
+
#: inc/admin/views/settings/emails/user-order-completed.php:56
|
2796 |
+
msgid "Email format"
|
2797 |
+
msgstr "Formato de Email"
|
2798 |
+
|
2799 |
+
#: inc/admin/views/settings/emails/finished-course.php:15
|
2800 |
+
#: inc/emails/class-lp-email-finished-course.php:19
|
2801 |
+
#: inc/emails/class-lp-email-finished-course.php:25
|
2802 |
+
msgid "Finished course"
|
2803 |
+
msgstr "Finalizar Curso"
|
2804 |
+
|
2805 |
+
#: inc/admin/views/settings/emails/finished-course.php:17
|
2806 |
+
msgid "Send this email to user when a user finished a course."
|
2807 |
+
msgstr ""
|
2808 |
+
"Enviar correo electrónico a este usuario cuando un usuario terminó un curso."
|
2809 |
+
|
2810 |
+
#: inc/admin/views/settings/emails/finished-course.php:37
|
2811 |
+
#: inc/admin/views/settings/emails/new-course.php:63
|
2812 |
+
#: inc/admin/views/settings/emails/new-order-customer.php:39
|
2813 |
+
#: inc/admin/views/settings/emails/new-order.php:51
|
2814 |
+
#: inc/admin/views/settings/emails/published-course.php:34
|
2815 |
+
#: inc/admin/views/settings/emails/rejected-course.php:38
|
2816 |
+
#: inc/admin/views/settings/emails/user-order-completed.php:38
|
2817 |
+
#, php-format
|
2818 |
+
msgid "Email subject, default: <code>%s</code>"
|
2819 |
+
msgstr "Asunto del correo electrónico, por defecto: <code>%s</code>"
|
2820 |
+
|
2821 |
+
#: inc/admin/views/settings/emails/general.php:15
|
2822 |
+
msgid "Email Options"
|
2823 |
+
msgstr "Opciones de Correo electrónico"
|
2824 |
+
|
2825 |
+
#: inc/admin/views/settings/emails/general.php:17
|
2826 |
+
msgid ""
|
2827 |
+
"The following options affect the sender (email address and name) used in "
|
2828 |
+
"LearnPress emails."
|
2829 |
+
msgstr ""
|
2830 |
+
"Las siguientes opciones afectan al remitente (dirección de correo "
|
2831 |
+
"electrónico y nombre) que se utiliza en los correos electrónicos usados por "
|
2832 |
+
"Learnpress."
|
2833 |
+
|
2834 |
+
#: inc/admin/views/settings/emails/general.php:23
|
2835 |
+
msgid "From Name"
|
2836 |
+
msgstr "Nombre del remitente"
|
2837 |
+
|
2838 |
+
#: inc/admin/views/settings/emails/general.php:29
|
2839 |
+
msgid "From Email"
|
2840 |
+
msgstr "Correo electrónico del remitente"
|
2841 |
+
|
2842 |
+
#: inc/admin/views/settings/emails/general.php:36
|
2843 |
+
msgid "Email Template"
|
2844 |
+
msgstr "Plantilla de Email"
|
2845 |
+
|
2846 |
+
#: inc/admin/views/settings/emails/general.php:40
|
2847 |
+
msgid "Header image"
|
2848 |
+
msgstr "Imagen de encabezado"
|
2849 |
+
|
2850 |
+
#: inc/admin/views/settings/emails/general.php:43
|
2851 |
+
msgid "The image will be displayed in the top of the email."
|
2852 |
+
msgstr "La imagen se mostrará en la parte superior del correo electrónico."
|
2853 |
+
|
2854 |
+
#: inc/admin/views/settings/emails/general.php:47
|
2855 |
+
msgid "Footer text"
|
2856 |
+
msgstr "Texto de pie de página"
|
2857 |
+
|
2858 |
+
#: inc/admin/views/settings/emails/general.php:50
|
2859 |
+
msgid "The text display in the bottom of email"
|
2860 |
+
msgstr "El texto se visualiza en la parte inferior del correo electrónico"
|
2861 |
+
|
2862 |
+
#: inc/admin/views/settings/emails/new-course.php:16
|
2863 |
+
msgid "New course for review"
|
2864 |
+
msgstr "Nuevo curso para revisar"
|
2865 |
+
|
2866 |
+
#: inc/admin/views/settings/emails/new-course.php:18
|
2867 |
+
msgid "Email settings when a new course is submitted for review."
|
2868 |
+
msgstr ""
|
2869 |
+
"Configuración de correo electrónico cuando un nuevo curso se presenta para "
|
2870 |
+
"su revisión."
|
2871 |
+
|
2872 |
+
#: inc/admin/views/settings/emails/new-course.php:33
|
2873 |
+
#: inc/admin/views/settings/emails/new-order.php:32
|
2874 |
+
msgid "Recipient(s)"
|
2875 |
+
msgstr "Destinatario(s)"
|
2876 |
+
|
2877 |
+
#: inc/admin/views/settings/emails/new-course.php:40
|
2878 |
+
#, php-format
|
2879 |
+
msgid "Email recipient(s), default: <code>%s</code>"
|
2880 |
+
msgstr "Correo electrónico del destinatario (s), por defecto: <code>%s</code>"
|
2881 |
+
|
2882 |
+
#: inc/admin/views/settings/emails/new-course.php:51
|
2883 |
+
#, php-format
|
2884 |
+
msgid "Email subject (separated by comma), default: <code>%s</code>"
|
2885 |
+
msgstr ""
|
2886 |
+
"Asunto del correo electrónico (separados por comas), por defecto: <code>%s</"
|
2887 |
+
"code>"
|
2888 |
+
|
2889 |
+
#: inc/admin/views/settings/emails/new-course.php:59
|
2890 |
+
#: inc/emails/class-lp-email-new-course.php:20
|
2891 |
+
#: inc/emails/class-lp-email-new-course.php:26
|
2892 |
+
msgid "New course"
|
2893 |
+
msgstr "Nuevo Curso"
|
2894 |
+
|
2895 |
+
#: inc/admin/views/settings/emails/new-order-customer.php:16
|
2896 |
+
#: inc/emails/class-lp-email-new-order-customer.php:21
|
2897 |
+
msgid "New order customer"
|
2898 |
+
msgstr "Cliente con nueva orden"
|
2899 |
+
|
2900 |
+
#: inc/admin/views/settings/emails/new-order-customer.php:18
|
2901 |
+
#: inc/admin/views/settings/emails/new-order.php:17
|
2902 |
+
msgid "Send email to a specific address when a new order is placed."
|
2903 |
+
msgstr ""
|
2904 |
+
"Enviar correo electrónico a la dirección específica cuando hay una nueva "
|
2905 |
+
"compra"
|
2906 |
+
|
2907 |
+
#: inc/admin/views/settings/emails/new-order.php:15
|
2908 |
+
#: inc/emails/class-lp-email-new-order.php:19
|
2909 |
+
#: inc/emails/class-lp-email-new-order.php:25
|
2910 |
+
msgid "New order"
|
2911 |
+
msgstr "Nuevo pedido"
|
2912 |
+
|
2913 |
+
#: inc/admin/views/settings/emails/new-order.php:39
|
2914 |
+
#, php-format
|
2915 |
+
msgid "Email recipient(s) (separated by comma), default: <code>%s</code>"
|
2916 |
+
msgstr ""
|
2917 |
+
"Correo electrónico del destinatario (s) (separados por comas), por defecto: "
|
2918 |
+
"<code>%s</code>"
|
2919 |
+
|
2920 |
+
#: inc/admin/views/settings/emails/rejected-course.php:18
|
2921 |
+
msgid "Settings for email when a course is rejected"
|
2922 |
+
msgstr "Ajustes de correo electrónico cuando se rechaza un curso"
|
2923 |
+
|
2924 |
+
#: inc/admin/views/settings/emails/user-order-completed.php:15
|
2925 |
+
#: inc/emails/class-lp-email-user-order-completed.php:21
|
2926 |
+
msgid "User order completed"
|
2927 |
+
msgstr "Pedido del usuario completado"
|
2928 |
+
|
2929 |
+
#: inc/admin/views/settings/emails/user-order-completed.php:17
|
2930 |
+
msgid "Send email to user when the order is completed."
|
2931 |
+
msgstr "Enviar correo electrónico a los usuarios cuando la orden se completa."
|
2932 |
+
|
2933 |
+
#: inc/admin/views/settings/emails/_email-template.php:55
|
2934 |
+
#, php-format
|
2935 |
+
msgid ""
|
2936 |
+
"This template has been overridden by your theme and can be found in: <code>"
|
2937 |
+
"%s</code>."
|
2938 |
+
msgstr ""
|
2939 |
+
"Esta plantilla ha sido sobreescrita por tu tema y puede encontrarse en: "
|
2940 |
+
"<code>%s</code>."
|
2941 |
+
|
2942 |
+
#: inc/admin/views/settings/emails/_email-template.php:60
|
2943 |
+
msgid "Delete template file"
|
2944 |
+
msgstr ""
|
2945 |
+
|
2946 |
+
#: inc/admin/views/settings/emails/_email-template.php:75
|
2947 |
+
msgid "Copy file to theme"
|
2948 |
+
msgstr ""
|
2949 |
+
|
2950 |
+
#: inc/admin/views/settings/emails/_email-template.php:81
|
2951 |
+
msgid "File was not found."
|
2952 |
+
msgstr ""
|
2953 |
+
|
2954 |
+
#: inc/admin/views/settings/fields/course-permalink.php:15
|
2955 |
+
msgctxt "default-slug"
|
2956 |
+
msgid "course"
|
2957 |
+
msgstr ""
|
2958 |
+
|
2959 |
+
#: inc/admin/views/settings/fields/course-permalink.php:26
|
2960 |
+
msgid "Default"
|
2961 |
+
msgstr "Por defecto"
|
2962 |
+
|
2963 |
+
#: inc/admin/views/settings/fields/course-permalink.php:36
|
2964 |
+
msgid "Courses base"
|
2965 |
+
msgstr "Cursos base"
|
2966 |
+
|
2967 |
+
#: inc/admin/views/settings/fields/course-permalink.php:41
|
2968 |
+
msgid "Courses base with category"
|
2969 |
+
msgstr "Cursos base con categoría"
|
2970 |
+
|
2971 |
+
#: inc/admin/views/settings/fields/course-permalink.php:75
|
2972 |
+
msgid "Custom Base"
|
2973 |
+
msgstr ""
|
2974 |
+
|
2975 |
+
#: inc/admin/views/settings/fields/course-permalink.php:81
|
2976 |
+
msgid ""
|
2977 |
+
"Enter a custom base to use. A base <strong>must</strong> be set or WordPress "
|
2978 |
+
"will use default values instead."
|
2979 |
+
msgstr ""
|
2980 |
+
"Introduce la base personalizada que se usará. <strong>Debes</strong> añadir "
|
2981 |
+
"una base o WordPress utilizará la base por defecto."
|
2982 |
+
|
2983 |
+
#: inc/admin/views/settings/fields/image-size.php:12
|
2984 |
+
msgid "px"
|
2985 |
+
msgstr ""
|
2986 |
+
|
2987 |
+
#: inc/admin/views/settings/fields/image-size.php:17
|
2988 |
+
msgid "Crop?"
|
2989 |
+
msgstr "¿Recortar?"
|
2990 |
+
|
2991 |
+
#: inc/admin/views/statistics/courses.php:18
|
2992 |
+
#: inc/admin/views/statistics/orders.php:19
|
2993 |
+
#: inc/admin/views/statistics/users.php:18
|
2994 |
+
msgid "Last 7 Days"
|
2995 |
+
msgstr "Ultimos 7 dias"
|
2996 |
+
|
2997 |
+
#: inc/admin/views/statistics/courses.php:21
|
2998 |
+
#: inc/admin/views/statistics/orders.php:22
|
2999 |
+
#: inc/admin/views/statistics/users.php:21
|
3000 |
+
msgid "Last 30 Days"
|
3001 |
+
msgstr "Últimos 30 días"
|
3002 |
+
|
3003 |
+
#: inc/admin/views/statistics/courses.php:24
|
3004 |
+
#: inc/admin/views/statistics/orders.php:25
|
3005 |
+
#: inc/admin/views/statistics/users.php:24
|
3006 |
+
msgid "Last 12 Months"
|
3007 |
+
msgstr "Últimos 12 meses."
|
3008 |
+
|
3009 |
+
#: inc/admin/views/statistics/courses.php:31
|
3010 |
+
#: inc/admin/views/statistics/orders.php:32
|
3011 |
+
#: inc/admin/views/statistics/users.php:31
|
3012 |
+
msgid "From"
|
3013 |
+
msgstr "De"
|
3014 |
+
|
3015 |
+
#: inc/admin/views/statistics/courses.php:33
|
3016 |
+
#: inc/admin/views/statistics/orders.php:34
|
3017 |
+
#: inc/admin/views/statistics/users.php:33
|
3018 |
+
msgid "To"
|
3019 |
+
msgstr "Para"
|
3020 |
+
|
3021 |
+
#: inc/admin/views/statistics/courses.php:36
|
3022 |
+
#: inc/admin/views/statistics/orders.php:37
|
3023 |
+
#: inc/admin/views/statistics/users.php:36
|
3024 |
+
msgid "Go"
|
3025 |
+
msgstr "Ir"
|
3026 |
+
|
3027 |
+
#: inc/admin/views/statistics/courses.php:43
|
3028 |
+
msgid "Public"
|
3029 |
+
msgstr "Publica"
|
3030 |
+
|
3031 |
+
#: inc/admin/views/statistics/orders.php:44
|
3032 |
+
msgid "Sale by"
|
3033 |
+
msgstr "Venta por"
|
3034 |
+
|
3035 |
+
#: inc/admin/views/statistics/orders.php:46 inc/custom-post-types/order.php:306
|
3036 |
+
#: templates/checkout/order-received.php:26
|
3037 |
+
#: templates/profile/tabs/orders.php:16
|
3038 |
+
msgid "Date"
|
3039 |
+
msgstr "Fecha"
|
3040 |
+
|
3041 |
+
#: inc/admin/views/statistics/orders.php:48
|
3042 |
+
msgid "Course Category"
|
3043 |
+
msgstr "Categoría del Curso"
|
3044 |
+
|
3045 |
+
#: inc/admin/views/statistics/orders.php:51
|
3046 |
+
msgid "Select a course"
|
3047 |
+
msgstr "Seleccionar un curso"
|
3048 |
+
|
3049 |
+
#: inc/admin/views/statistics/orders.php:55
|
3050 |
+
msgid "Select a course category"
|
3051 |
+
msgstr "Seleccionar categoría del curso"
|
3052 |
+
|
3053 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:1
|
3054 |
+
msgid "Update Database"
|
3055 |
+
msgstr ""
|
3056 |
+
|
3057 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:4
|
3058 |
+
msgid "Update custom post type"
|
3059 |
+
msgstr ""
|
3060 |
+
|
3061 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:7
|
3062 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:10
|
3063 |
+
msgid "Update post meta"
|
3064 |
+
msgstr ""
|
3065 |
+
|
3066 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:14
|
3067 |
+
msgid "Updating! Please do not close this page until the work is done"
|
3068 |
+
msgstr ""
|
3069 |
+
"Actualizando! Por favor, no cierre esta página hasta que el trabajo esté "
|
3070 |
+
"completado"
|
3071 |
+
|
3072 |
+
#: inc/admin/views/updates/0.9/step-repair-database.php:18
|
3073 |
+
msgid "Rollback"
|
3074 |
+
msgstr ""
|
3075 |
+
|
3076 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:1
|
3077 |
+
msgid "Upgrade complete successfully!"
|
3078 |
+
msgstr "Actualización completada."
|
3079 |
+
|
3080 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:2
|
3081 |
+
msgid "What's next?"
|
3082 |
+
msgstr "¿Y ahora qué?"
|
3083 |
+
|
3084 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:5
|
3085 |
+
msgid "Manage courses"
|
3086 |
+
msgstr "Administrar Cursos"
|
3087 |
+
|
3088 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:8
|
3089 |
+
msgid "Create a new course"
|
3090 |
+
msgstr "Crear nuevo curso"
|
3091 |
+
|
3092 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:11
|
3093 |
+
msgid "Setting up your LearnPress"
|
3094 |
+
msgstr ""
|
3095 |
+
|
3096 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:14
|
3097 |
+
msgid "Manage add-ons"
|
3098 |
+
msgstr ""
|
3099 |
+
|
3100 |
+
#: inc/admin/views/updates/0.9/step-upgraded.php:16
|
3101 |
+
msgid "Dashboard"
|
3102 |
+
msgstr "Panel"
|
3103 |
+
|
3104 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:1
|
3105 |
+
msgid "Welcome to LearnPress!"
|
3106 |
+
msgstr "Bienvenido a Mentoría Online!"
|
3107 |
+
|
3108 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:2
|
3109 |
+
msgid "Thank you for choosing LearnPress to sell your courses online!"
|
3110 |
+
msgstr "Gracias por elegir Mentoiría Online para vender sus cursos en línea!"
|
3111 |
+
|
3112 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:3
|
3113 |
+
#, php-format
|
3114 |
+
msgid ""
|
3115 |
+
"In version <strong>%s</strong> of LearnPress we have a big update and need "
|
3116 |
+
"to upgrade your database to ensure system works properly."
|
3117 |
+
msgstr ""
|
3118 |
+
"En la versión <strong>%s</strong> de LearnPress tenemos una gran "
|
3119 |
+
"actualización y la necesidad de actualizar su base de datos para asegurar "
|
3120 |
+
"que el sistema funciona correctamente."
|
3121 |
+
|
3122 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:4
|
3123 |
+
msgid ""
|
3124 |
+
"We are very careful in upgrading the database but be sure to backup your "
|
3125 |
+
"database before upgrading to avoid the risks may be encountered."
|
3126 |
+
msgstr ""
|
3127 |
+
"Somos muy cuidadosos en la actualización de la base de datos pero Asegúrese "
|
3128 |
+
"de salvaguardar su base de datos antes de actualizar para evitar riesgos que "
|
3129 |
+
"se puedan encontrar."
|
3130 |
+
|
3131 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:5
|
3132 |
+
msgid "Click <strong>Yes, upgrade!</strong> button to start."
|
3133 |
+
msgstr "Haga clic en <strong>Sí, actualizar!</strong> Botón para comenzar."
|
3134 |
+
|
3135 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:7
|
3136 |
+
msgid "No, back to Admin"
|
3137 |
+
msgstr "Ir al Administrador"
|
3138 |
+
|
3139 |
+
#: inc/admin/views/updates/0.9/step-welcome.php:8
|
3140 |
+
msgid "Yes, upgrade!"
|
3141 |
+
msgstr "Sí, actualizar!"
|
3142 |
+
|
3143 |
+
#: inc/admin/views/updates/0.9/update-wizard.php:6
|
3144 |
+
#: inc/admin/views/updates/0.9/update-wizard.php:19
|
3145 |
+
#, php-format
|
3146 |
+
msgid "LearnPress update version %s"
|
3147 |
+
msgstr "LearnPress versión de actualización %s"
|
3148 |
+
|
3149 |
+
#: inc/cart/class-lp-cart.php:120
|
3150 |
+
msgid "Get cart should not be called before the wp_loaded action."
|
3151 |
+
msgstr "Adquirir cesta no debería ser llamado antes de la acción wp_loaded"
|
3152 |
+
|
3153 |
+
#: inc/cart/class-lp-cart.php:140 inc/cart/class-lp-cart.php:190
|
3154 |
+
msgid "Sorry! This course is not purchasable."
|
3155 |
+
msgstr "¡Lo siento! Este curso no esta a la venta por ahora"
|
3156 |
+
|
3157 |
+
#: inc/cart/class-lp-cart.php:222
|
3158 |
+
msgid "Please login to continue process."
|
3159 |
+
msgstr "Por favor, inicie sesión para continuar."
|
3160 |
+
|
3161 |
+
#: inc/cart/class-lp-cart.php:242
|
3162 |
+
msgid "Cart page is not setting up."
|
3163 |
+
msgstr "No se ha configurado la página de carrito de compra"
|
3164 |
+
|
3165 |
+
#: inc/cart/class-lp-cart.php:245 templates/cart/empty-cart.php:19
|
3166 |
+
msgid "Back to class"
|
3167 |
+
msgstr "Regresar a clase"
|
3168 |
+
|
3169 |
+
#: inc/cart/class-lp-cart.php:250 inc/cart/class-lp-cart.php:260
|
3170 |
+
msgid "Checkout page is not setting up."
|
3171 |
+
msgstr "La página de cobro no esta configurado."
|
3172 |
+
|
3173 |
+
#: inc/cart/class-lp-cart.php:252
|
3174 |
+
msgid "View cart"
|
3175 |
+
msgstr "Ver mi carrito"
|
3176 |
+
|
3177 |
+
#: inc/cart/class-lp-cart.php:255
|
3178 |
+
#, php-format
|
3179 |
+
msgid "<strong>%s</strong> has been added to your cart. %s"
|
3180 |
+
msgstr "<strong>%s</strong> ha sido añadido a tu carrito %s"
|
3181 |
+
|
3182 |
+
#: inc/cart/class-lp-cart.php:544
|
3183 |
+
msgid "Checkout page is not setup"
|
3184 |
+
msgstr "Página de compra no está configurada"
|
3185 |
+
|
3186 |
+
#: inc/course/abstract-lp-course.php:449
|
3187 |
+
msgid "You enrolled"
|
3188 |
+
msgstr "Te has inscrito"
|
3189 |
+
|
3190 |
+
#: inc/course/abstract-lp-course.php:451
|
3191 |
+
#, php-format
|
3192 |
+
msgctxt ""
|
3193 |
+
msgid "You and one student enrolled"
|
3194 |
+
msgid_plural ""
|
3195 |
+
"You and <span class=\"course-students-number\">%1$s</span> students enrolled"
|
3196 |
+
msgstr[0] ""
|
3197 |
+
msgstr[1] ""
|
3198 |
+
|
3199 |
+
#: inc/course/abstract-lp-course.php:455
|
3200 |
+
#, php-format
|
3201 |
+
msgctxt ""
|
3202 |
+
msgid "One student enrolled"
|
3203 |
+
msgid_plural ""
|
3204 |
+
"<span class=\"course-students-number\">%1$s</span> students enrolled"
|
3205 |
+
msgstr[0] ""
|
3206 |
+
msgstr[1] ""
|
3207 |
+
|
3208 |
+
#: inc/course/abstract-lp-course.php:459
|
3209 |
+
msgid "No student enrolled"
|
3210 |
+
msgstr "Ningún estudiante inscrito"
|
3211 |
+
|
3212 |
+
#: inc/course/abstract-lp-course.php:838 inc/course/abstract-lp-course.php:856
|
3213 |
+
#: inc/lesson/class-lp-lesson.php:119 inc/quiz/class-lp-quiz.php:618
|
3214 |
+
#, php-format
|
3215 |
+
msgid "The function %s doesn't exists"
|
3216 |
+
msgstr "La función %s no existe"
|
3217 |
+
|
3218 |
+
#: inc/course/abstract-lp-course.php:1096
|
3219 |
+
#, php-format
|
3220 |
+
msgid "%d of %d items completed"
|
3221 |
+
msgstr "%d de %d elementos completados"
|
3222 |
+
|
3223 |
+
#: inc/course/abstract-lp-course.php:1099
|
3224 |
+
#: inc/course/abstract-lp-course.php:1101
|
3225 |
+
#, php-format
|
3226 |
+
msgid "%d%% completed"
|
3227 |
+
msgstr "%d%% finalizado"
|
3228 |
+
|
3229 |
+
#: inc/course/abstract-lp-course.php:1389
|
3230 |
+
#, php-format
|
3231 |
+
msgid "This course will end within %s next"
|
3232 |
+
msgstr "Tu acceso a este curso expirará el %s."
|
3233 |
+
|
3234 |
+
#: inc/course/class-lp-course.php:31
|
3235 |
+
#, php-format
|
3236 |
+
msgid "Are you sure you want to finish course %s?"
|
3237 |
+
msgstr ""
|
3238 |
+
|
3239 |
+
#: inc/course/class-lp-course.php:32 templates/single-course/buttons.php:65
|
3240 |
+
msgid "Finish course"
|
3241 |
+
msgstr "Finalizar curso"
|
3242 |
+
|
3243 |
+
#: inc/course/class-lp-course.php:35
|
3244 |
+
#, php-format
|
3245 |
+
msgid "Are you sure you want to retake course %s"
|
3246 |
+
msgstr ""
|
3247 |
+
|
3248 |
+
#: inc/course/class-lp-course.php:36
|
3249 |
+
msgid "Retake course"
|
3250 |
+
msgstr "Repetir curso"
|
3251 |
+
|
3252 |
+
#: inc/course/class-lp-course.php:39 inc/quiz/class-lp-quiz.php:111
|
3253 |
+
msgid "Finish quiz"
|
3254 |
+
msgstr "Finalizar Examen"
|
3255 |
+
|
3256 |
+
#: inc/course/class-lp-course.php:40 inc/quiz/class-lp-quiz.php:112
|
3257 |
+
msgid "Are you sure you want to finish this quiz?"
|
3258 |
+
msgstr "¿Estás seguro de que deseas terminar este examen?"
|
3259 |
+
|
3260 |
+
#: inc/course/class-lp-course.php:43 inc/quiz/class-lp-quiz.php:115
|
3261 |
+
msgid "Retake quiz"
|
3262 |
+
msgstr "Volver a hacer la Prueba"
|
3263 |
+
|
3264 |
+
#: inc/course/class-lp-course.php:44 inc/quiz/class-lp-quiz.php:116
|
3265 |
+
msgid "Are you sure you want to retake this quiz?"
|
3266 |
+
msgstr "¿Está seguro que quiere volver a tomar el examen?"
|
3267 |
+
|
3268 |
+
#: inc/course/class-lp-course.php:47 inc/quiz/class-lp-quiz.php:119
|
3269 |
+
msgid "Time out!"
|
3270 |
+
msgstr "¡Se acabo el tiempo!"
|
3271 |
+
|
3272 |
+
#: inc/course/class-lp-course.php:48 inc/quiz/class-lp-quiz.php:120
|
3273 |
+
msgid "The time is over! Your quiz will automate come to finish"
|
3274 |
+
msgstr "¡Se acabó el tiempo! El examen terminará de manera automática"
|
3275 |
+
|
3276 |
+
#: inc/course/class-lp-course.php:50 inc/quiz/class-lp-quiz.php:122
|
3277 |
+
msgid "Congrats! You have finished this quiz"
|
3278 |
+
msgstr "¡Felicidades! Has terminado este éxamen"
|
3279 |
+
|
3280 |
+
#: inc/course/class-lp-course.php:51 inc/quiz/class-lp-quiz.php:123
|
3281 |
+
msgid ""
|
3282 |
+
"Congrats! You have re-taken this quiz. Please wait a moment and the page "
|
3283 |
+
"will reload"
|
3284 |
+
msgstr ""
|
3285 |
+
"¡Felicidades! Ha retomado este exámen. Por favor, espere un momento y la "
|
3286 |
+
"página se recargará"
|
3287 |
+
|
3288 |
+
#: inc/course/lp-course-functions.php:133
|
3289 |
+
msgctxt "slug"
|
3290 |
+
msgid "uncategorized"
|
3291 |
+
msgstr "sin categorizar"
|
3292 |
+
|
3293 |
+
#: inc/course/lp-course-functions.php:178
|
3294 |
+
#, php-format
|
3295 |
+
msgid "The course %d does not exists"
|
3296 |
+
msgstr "El curso %d no existe"
|
3297 |
+
|
3298 |
+
#: inc/course/lp-course-functions.php:612
|
3299 |
+
msgid "Course item navigation"
|
3300 |
+
msgstr "Configuración del Curso"
|
3301 |
+
|
3302 |
+
#: inc/course/lp-course-functions.php:619 templates/content-quiz/buttons.php:31
|
3303 |
+
msgid "Previous"
|
3304 |
+
msgstr "Anterior"
|
3305 |
+
|
3306 |
+
#: inc/course/lp-course-functions.php:619
|
3307 |
+
msgid "Previous post:"
|
3308 |
+
msgstr "Publicación anterior:"
|
3309 |
+
|
3310 |
+
#: inc/course/lp-course-functions.php:627
|
3311 |
+
#: templates/content-lesson/__next-button.php:10
|
3312 |
+
#: templates/content-quiz/buttons.php:32
|
3313 |
+
msgid "Next"
|
3314 |
+
msgstr "Siguiente"
|
3315 |
+
|
3316 |
+
#: inc/course/lp-course-functions.php:627
|
3317 |
+
msgid "Next post:"
|
3318 |
+
msgstr "Próxima publicación:"
|
3319 |
+
|
3320 |
+
#: inc/custom-post-types/abstract.php:414
|
3321 |
+
#: inc/custom-post-types/abstract.php:417
|
3322 |
+
msgid "updated."
|
3323 |
+
msgstr "Actualizada"
|
3324 |
+
|
3325 |
+
#: inc/custom-post-types/abstract.php:415
|
3326 |
+
msgid "Custom field updated."
|
3327 |
+
msgstr "Campo personalizado actualizado."
|
3328 |
+
|
3329 |
+
#: inc/custom-post-types/abstract.php:416
|
3330 |
+
msgid "Custom field deleted."
|
3331 |
+
msgstr "Campo personalizado borrado."
|
3332 |
+
|
3333 |
+
#: inc/custom-post-types/abstract.php:419
|
3334 |
+
#, php-format
|
3335 |
+
msgid "Lesson restored to revision from %s"
|
3336 |
+
msgstr "Lección restaurada a partir de la revisión %s"
|
3337 |
+
|
3338 |
+
#: inc/custom-post-types/abstract.php:420
|
3339 |
+
msgid "published."
|
3340 |
+
msgstr "publicado"
|
3341 |
+
|
3342 |
+
#: inc/custom-post-types/abstract.php:421
|
3343 |
+
msgid "saved."
|
3344 |
+
msgstr "guardada."
|
3345 |
+
|
3346 |
+
#: inc/custom-post-types/abstract.php:422
|
3347 |
+
msgid "submitted."
|
3348 |
+
msgstr "enviado."
|
3349 |
+
|
3350 |
+
#: inc/custom-post-types/abstract.php:424
|
3351 |
+
#, php-format
|
3352 |
+
msgid "scheduled for: <strong>%1$s</strong>."
|
3353 |
+
msgstr "Programada para: <strong>%1$s</strong>."
|
3354 |
+
|
3355 |
+
#: inc/custom-post-types/abstract.php:426
|
3356 |
+
msgid "M j, Y @ G:i"
|
3357 |
+
msgstr ""
|
3358 |
+
|
3359 |
+
#: inc/custom-post-types/abstract.php:428
|
3360 |
+
msgid "draft updated."
|
3361 |
+
msgstr "Borrador actualizado"
|
3362 |
+
|
3363 |
+
#: inc/custom-post-types/abstract.php:434
|
3364 |
+
#: inc/custom-post-types/abstract.php:445 inc/custom-post-types/lesson.php:213
|
3365 |
+
#: inc/custom-post-types/question.php:279 inc/custom-post-types/quiz.php:349
|
3366 |
+
#: templates/profile/tabs/orders.php:39
|
3367 |
+
msgid "View"
|
3368 |
+
msgstr "Ver"
|
3369 |
+
|
3370 |
+
#: inc/custom-post-types/course.php:144
|
3371 |
+
msgid "Reorder"
|
3372 |
+
msgstr "Reordenar"
|
3373 |
+
|
3374 |
+
#: inc/custom-post-types/course.php:146
|
3375 |
+
msgid "Switch to meta boxes"
|
3376 |
+
msgstr "Cambiar a cajas de meta"
|
3377 |
+
|
3378 |
+
#: inc/custom-post-types/course.php:156
|
3379 |
+
msgid "Would you like to see the meta boxes in tabs style?"
|
3380 |
+
msgstr "¿Te gustaría ver los cuadros de meta en el estilo de pestañas?"
|
3381 |
+
|
3382 |
+
#: inc/custom-post-types/course.php:158
|
3383 |
+
msgid "Switch meta boxes to tabs"
|
3384 |
+
msgstr "Cambiar a la pestaña"
|
3385 |
+
|
3386 |
+
#: inc/custom-post-types/course.php:166
|
3387 |
+
msgid "Toggle"
|
3388 |
+
msgstr "Toggle"
|
3389 |
+
|
3390 |
+
#: inc/custom-post-types/course.php:167
|
3391 |
+
msgid "Switch to tabs"
|
3392 |
+
msgstr "Vaya a la pestaña"
|
3393 |
+
|
3394 |
+
#: inc/custom-post-types/course.php:202 inc/custom-post-types/course.php:204
|
3395 |
+
msgid "Course Categories"
|
3396 |
+
msgstr "Categorías de cursos:"
|
3397 |
+
|
3398 |
+
#: inc/custom-post-types/course.php:205 inc/custom-post-types/course.php:206
|
3399 |
+
msgid "Category"
|
3400 |
+
msgstr "Categoría"
|
3401 |
+
|
3402 |
+
#: inc/custom-post-types/course.php:207
|
3403 |
+
msgid "Add New Course Category"
|
3404 |
+
msgstr "Añadir nueva categoría al curso"
|
3405 |
+
|
3406 |
+
#: inc/custom-post-types/course.php:208
|
3407 |
+
msgid "All Categories"
|
3408 |
+
msgstr "Todas las categorías"
|
3409 |
+
|
3410 |
+
#: inc/custom-post-types/course.php:219
|
3411 |
+
msgctxt "slug"
|
3412 |
+
msgid "course-category"
|
3413 |
+
msgstr "categoria-curso"
|
3414 |
+
|
3415 |
+
#: inc/custom-post-types/course.php:230
|
3416 |
+
msgid "Course Tags"
|
3417 |
+
msgstr "Etiquetas de Cursos"
|
3418 |
+
|
3419 |
+
#: inc/custom-post-types/course.php:231 inc/custom-post-types/question.php:74
|
3420 |
+
#: inc/custom-post-types/question.php:75 inc/updates/_update-from-0.9.php:1166
|
3421 |
+
#: inc/updates/_update-from-0.9.php:1167 inc/updates/_update-from-0.9.php:1168
|
3422 |
+
#: inc/updates/_update-from-0.9.php:1185 inc/updates/_update-from-0.9.php:1186
|
3423 |
+
msgid "Tag"
|
3424 |
+
msgstr "Etiqueta"
|
3425 |
+
|
3426 |
+
#: inc/custom-post-types/course.php:232
|
3427 |
+
msgid "Search Course Tags"
|
3428 |
+
msgstr "Buscar las etiquetas de cursos"
|
3429 |
+
|
3430 |
+
#: inc/custom-post-types/course.php:233
|
3431 |
+
msgid "Popular Course Tags"
|
3432 |
+
msgstr "Etiquetas populares de cursos"
|
3433 |
+
|
3434 |
+
#: inc/custom-post-types/course.php:234
|
3435 |
+
msgid "All Course Tags"
|
3436 |
+
msgstr "Todas las Etiquetas de Cursos"
|
3437 |
+
|
3438 |
+
#: inc/custom-post-types/course.php:237
|
3439 |
+
msgid "Edit Course Tag"
|
3440 |
+
msgstr "Editar etiquetas de Curso"
|
3441 |
+
|
3442 |
+
#: inc/custom-post-types/course.php:238
|
3443 |
+
msgid "Update Course Tag"
|
3444 |
+
msgstr "Actualizar Etiqueta de curso"
|
3445 |
+
|
3446 |
+
#: inc/custom-post-types/course.php:239
|
3447 |
+
msgid "Add New Course Tag"
|
3448 |
+
msgstr "Añadir Etiqueta Nueva de Curso"
|
3449 |
+
|
3450 |
+
#: inc/custom-post-types/course.php:240
|
3451 |
+
msgid "New Course Tag Name"
|
3452 |
+
msgstr "Nueva Etiqueta de Curso"
|
3453 |
+
|
3454 |
+
#: inc/custom-post-types/course.php:241
|
3455 |
+
msgid "Separate tags with commas"
|
3456 |
+
msgstr "Separar etiquetas con comas"
|
3457 |
+
|
3458 |
+
#: inc/custom-post-types/course.php:242
|
3459 |
+
msgid "Add or remove tags"
|
3460 |
+
msgstr "Añadir o eliminar etiquetas"
|
3461 |
+
|
3462 |
+
#: inc/custom-post-types/course.php:243
|
3463 |
+
msgid "Choose from the most used tags"
|
3464 |
+
msgstr "Elegir entre las etiquetas más usadas"
|
3465 |
+
|
3466 |
+
#: inc/custom-post-types/course.php:253
|
3467 |
+
msgctxt "slug"
|
3468 |
+
msgid "course-tag"
|
3469 |
+
msgstr "curso-etiqueta"
|
3470 |
+
|
3471 |
+
#: inc/custom-post-types/course.php:332
|
3472 |
+
msgid "Sorry! You can not update a course while it is viewing!"
|
3473 |
+
msgstr "¡Lo siento! No se puede actualizar un curso mientras se está viendo!"
|
3474 |
+
|
3475 |
+
#: inc/custom-post-types/course.php:368
|
3476 |
+
msgid "Toggle Course Content"
|
3477 |
+
msgstr "Contenido del curso"
|
3478 |
+
|
3479 |
+
#: inc/custom-post-types/course.php:385
|
3480 |
+
msgid "Please enter the title of the course"
|
3481 |
+
msgstr "Por favor, introduzca el título del curso"
|
3482 |
+
|
3483 |
+
#: inc/custom-post-types/course.php:386
|
3484 |
+
msgid "Please add at least one section for the course"
|
3485 |
+
msgstr "Por favor añada al menos una sección para el curso"
|
3486 |
+
|
3487 |
+
#: inc/custom-post-types/course.php:387
|
3488 |
+
msgid "Please enter the title of the section"
|
3489 |
+
msgstr "Por favor, introduzca el título de la sección"
|
3490 |
+
|
3491 |
+
#: inc/custom-post-types/course.php:388
|
3492 |
+
msgid "Please set a price for this course"
|
3493 |
+
msgstr "Por favor, fije un precio para este curso"
|
3494 |
+
|
3495 |
+
#: inc/custom-post-types/course.php:406
|
3496 |
+
msgid "You course will become to Pending"
|
3497 |
+
msgstr ""
|
3498 |
+
|
3499 |
+
#: inc/custom-post-types/course.php:449
|
3500 |
+
msgctxt "Post Type General Name"
|
3501 |
+
msgid "Courses"
|
3502 |
+
msgstr "Cursos"
|
3503 |
+
|
3504 |
+
#: inc/custom-post-types/course.php:450
|
3505 |
+
msgctxt "Post Type Singular Name"
|
3506 |
+
msgid "Course"
|
3507 |
+
msgstr "Curso"
|
3508 |
+
|
3509 |
+
#: inc/custom-post-types/course.php:452
|
3510 |
+
msgid "Parent Item:"
|
3511 |
+
msgstr "Elemento Padre:"
|
3512 |
+
|
3513 |
+
#: inc/custom-post-types/course.php:454
|
3514 |
+
msgid "View Course"
|
3515 |
+
msgstr "Ver cursos"
|
3516 |
+
|
3517 |
+
#: inc/custom-post-types/course.php:455
|
3518 |
+
msgid "Add New Course"
|
3519 |
+
msgstr "Añadir Nuevo Curso"
|
3520 |
+
|
3521 |
+
#: inc/custom-post-types/course.php:457
|
3522 |
+
msgid "Edit Course"
|
3523 |
+
msgstr "Editar Curso"
|
3524 |
+
|
3525 |
+
#: inc/custom-post-types/course.php:458
|
3526 |
+
msgid "Update Course"
|
3527 |
+
msgstr "Actualizar curso"
|
3528 |
+
|
3529 |
+
#: inc/custom-post-types/course.php:459
|
3530 |
+
msgid "Search Courses"
|
3531 |
+
msgstr "Buscar cursos"
|
3532 |
+
|
3533 |
+
#: inc/custom-post-types/course.php:460
|
3534 |
+
#, php-format
|
3535 |
+
msgid ""
|
3536 |
+
"You have not got any courses yet. Click <a href=\"%s\">Add new</a> to start"
|
3537 |
+
msgstr ""
|
3538 |
+
"Aún no has subido cursos. Haz clic en <a href=\"%s\">Agregar nuevo</a> para "
|
3539 |
+
"iniciar"
|
3540 |
+
|
3541 |
+
#: inc/custom-post-types/course.php:461
|
3542 |
+
msgid "No course found in Trash"
|
3543 |
+
msgstr "No hay cursos en la Papelera"
|
3544 |
+
|
3545 |
+
#: inc/custom-post-types/course.php:559 inc/custom-post-types/quiz.php:145
|
3546 |
+
msgid "General Settings"
|
3547 |
+
msgstr "Ajustes generales"
|
3548 |
+
|
3549 |
+
#: inc/custom-post-types/course.php:564 inc/custom-post-types/lesson.php:176
|
3550 |
+
#: inc/custom-post-types/quiz.php:164 inc/custom-post-types/quiz.php:318
|
3551 |
+
msgid "Duration"
|
3552 |
+
msgstr "Duración.."
|
3553 |
+
|
3554 |
+
#: inc/custom-post-types/course.php:567
|
3555 |
+
msgid "The duration of the course (by weeks)."
|
3556 |
+
msgstr "Duración del Curso (semanas)"
|
3557 |
+
|
3558 |
+
#: inc/custom-post-types/course.php:571
|
3559 |
+
msgid "Maximum students"
|
3560 |
+
msgstr "Máximo de estudiantes"
|
3561 |
+
|
3562 |
+
#: inc/custom-post-types/course.php:574
|
3563 |
+
msgid "Maximum number of students who can enroll in this course."
|
3564 |
+
msgstr "Número máximo de alumnos que pueden matricularse este curso"
|
3565 |
+
|
3566 |
+
#: inc/custom-post-types/course.php:578
|
3567 |
+
msgid "Students enrolled"
|
3568 |
+
msgstr "Estudiantes Inscritos"
|
3569 |
+
|
3570 |
+
#: inc/custom-post-types/course.php:581
|
3571 |
+
msgid "How many students have taken this course."
|
3572 |
+
msgstr "Cuántos alumnos han tomado este curso"
|
3573 |
+
|
3574 |
+
#: inc/custom-post-types/course.php:585
|
3575 |
+
msgid "Re-take course"
|
3576 |
+
msgstr "Tomar este Curso"
|
3577 |
+
|
3578 |
+
#: inc/custom-post-types/course.php:588
|
3579 |
+
msgid "How many times the user can re-take this course. Set to 0 to disable."
|
3580 |
+
msgstr ""
|
3581 |
+
"¿Cuántas veces el usuario puede volver a tomar este curso. Se establece en 0 "
|
3582 |
+
"para desactivarlo."
|
3583 |
+
|
3584 |
+
#: inc/custom-post-types/course.php:592
|
3585 |
+
msgid "Featured"
|
3586 |
+
msgstr "Destacado"
|
3587 |
+
|
3588 |
+
#: inc/custom-post-types/course.php:595
|
3589 |
+
msgid "Set course as featured."
|
3590 |
+
msgstr "Establecer como destacado"
|
3591 |
+
|
3592 |
+
#: inc/custom-post-types/course.php:613
|
3593 |
+
msgid "The method to assess the result of a student for a course."
|
3594 |
+
msgstr "El método para evaluar el resultado de un estudiante en un curso."
|
3595 |
+
|
3596 |
+
#: inc/custom-post-types/course.php:615
|
3597 |
+
msgid ""
|
3598 |
+
"<br /><strong>Note! </strong>No final quiz in course, please add a final quiz"
|
3599 |
+
msgstr ""
|
3600 |
+
"<br /><strong>Nota! </strong>El curso no tiene examen final, por favor añade "
|
3601 |
+
"uno"
|
3602 |
+
|
3603 |
+
#: inc/custom-post-types/course.php:619
|
3604 |
+
msgid "Assessment"
|
3605 |
+
msgstr "Evaluación"
|
3606 |
+
|
3607 |
+
#: inc/custom-post-types/course.php:624
|
3608 |
+
msgid "Course result"
|
3609 |
+
msgstr "Resultado del Curso"
|
3610 |
+
|
3611 |
+
#: inc/custom-post-types/course.php:629
|
3612 |
+
msgid "Evaluate lessons"
|
3613 |
+
msgstr "Evaluar lecciones"
|
3614 |
+
|
3615 |
+
#: inc/custom-post-types/course.php:630
|
3616 |
+
msgid "Evaluate result of quizzes"
|
3617 |
+
msgstr "Evaluar el resultado de los exámenes"
|
3618 |
+
|
3619 |
+
#: inc/custom-post-types/course.php:631
|
3620 |
+
msgid "Evaluate the result of the final quiz"
|
3621 |
+
msgstr "Evaluar el resultado del examen final"
|
3622 |
+
|
3623 |
+
#: inc/custom-post-types/course.php:636
|
3624 |
+
msgid "Passing condition value"
|
3625 |
+
msgstr "Valor para pasar"
|
3626 |
+
|
3627 |
+
#: inc/custom-post-types/course.php:641
|
3628 |
+
msgid ""
|
3629 |
+
"The percentage of quiz result or lessons completed to finish the course."
|
3630 |
+
msgstr ""
|
3631 |
+
"El porcentaje necesario de lecciones completadas o de resultado del exámen "
|
3632 |
+
"para aprobar el curso"
|
3633 |
+
|
3634 |
+
#: inc/custom-post-types/course.php:662
|
3635 |
+
msgid "Payment Settings"
|
3636 |
+
msgstr "Configuración de pagos"
|
3637 |
+
|
3638 |
+
#: inc/custom-post-types/course.php:667
|
3639 |
+
msgid "Course payment"
|
3640 |
+
msgstr "Pago de Cursos"
|
3641 |
+
|
3642 |
+
#: inc/custom-post-types/course.php:670
|
3643 |
+
msgid ""
|
3644 |
+
"If it is checked, An administrator will review then set course price and "
|
3645 |
+
"commission."
|
3646 |
+
msgstr ""
|
3647 |
+
"Si se paga, Un administrador revisará a continuación, establecer el precio "
|
3648 |
+
"del curso y la comisión"
|
3649 |
+
|
3650 |
+
#: inc/custom-post-types/course.php:680
|
3651 |
+
msgid "If free, this field is empty or set 0. (Only admin can edit this field)"
|
3652 |
+
msgstr ""
|
3653 |
+
"Si es gratis, este campo está vacío o con un 0. (Sólo el administrador puede "
|
3654 |
+
"editar este campo)"
|
3655 |
+
|
3656 |
+
#: inc/custom-post-types/course.php:691
|
3657 |
+
#, php-format
|
3658 |
+
msgid ""
|
3659 |
+
"This course is requires enrollment and the suggested price is <strong>%s</"
|
3660 |
+
"strong>"
|
3661 |
+
msgstr ""
|
3662 |
+
"Este curso requiere inscripción y el precio sugerido es <strong>%s</strong>"
|
3663 |
+
|
3664 |
+
#: inc/custom-post-types/course.php:699
|
3665 |
+
msgid "This course is free."
|
3666 |
+
msgstr "Este curso es gratuito."
|
3667 |
+
|
3668 |
+
#: inc/custom-post-types/course.php:705 inc/custom-post-types/course.php:1292
|
3669 |
+
#: inc/custom-post-types/course.php:1298 templates/cart/form.php:30
|
3670 |
+
#: templates/emails/order-items-table.php:21
|
3671 |
+
msgid "Price"
|
3672 |
+
msgstr "Precio"
|
3673 |
+
|
3674 |
+
#: inc/custom-post-types/course.php:715
|
3675 |
+
msgid "Sale Price"
|
3676 |
+
msgstr "Precio de venta"
|
3677 |
+
|
3678 |
+
#: inc/custom-post-types/course.php:720
|
3679 |
+
msgid "Schedule"
|
3680 |
+
msgstr "Agenda"
|
3681 |
+
|
3682 |
+
#: inc/custom-post-types/course.php:725
|
3683 |
+
msgid "Sale start date"
|
3684 |
+
msgstr "Fecha de inicio de la venta"
|
3685 |
+
|
3686 |
+
#: inc/custom-post-types/course.php:732
|
3687 |
+
msgid "Sale end date"
|
3688 |
+
msgstr "Fecha de fin"
|
3689 |
+
|
3690 |
+
#: inc/custom-post-types/course.php:743
|
3691 |
+
msgid "Course Suggestion Price"
|
3692 |
+
msgstr "Precio Sugerido del Curso"
|
3693 |
+
|
3694 |
+
#: inc/custom-post-types/course.php:748
|
3695 |
+
msgid "The course price you want to suggest for admin to set."
|
3696 |
+
msgstr ""
|
3697 |
+
"El precio del curso que desea sugerir para que el administrador configure."
|
3698 |
+
|
3699 |
+
#: inc/custom-post-types/course.php:754
|
3700 |
+
msgid "Price set by Admin"
|
3701 |
+
msgstr "Precio fijado por Admin"
|
3702 |
+
|
3703 |
+
#: inc/custom-post-types/course.php:758
|
3704 |
+
msgid "Not set"
|
3705 |
+
msgstr "No definido"
|
3706 |
+
|
3707 |
+
#: inc/custom-post-types/course.php:765
|
3708 |
+
msgid "Requires enroll"
|
3709 |
+
msgstr "Requiere inscribirse"
|
3710 |
+
|
3711 |
+
#: inc/custom-post-types/course.php:768
|
3712 |
+
msgid "Require users logged in to study or public to all."
|
3713 |
+
msgstr ""
|
3714 |
+
"Requiere que los usuarios ingresen sesión para estudiar o mantenerlo público "
|
3715 |
+
"a todos"
|
3716 |
+
|
3717 |
+
#: inc/custom-post-types/course.php:803
|
3718 |
+
msgid "Author Settings"
|
3719 |
+
msgstr "Ajustes de autor"
|
3720 |
+
|
3721 |
+
#: inc/custom-post-types/course.php:808 inc/custom-post-types/course.php:1289
|
3722 |
+
#: inc/custom-post-types/course.php:1295 inc/custom-post-types/lesson.php:171
|
3723 |
+
#: inc/custom-post-types/question.php:243 inc/custom-post-types/quiz.php:315
|
3724 |
+
msgid "Author"
|
3725 |
+
msgstr "Autor"
|
3726 |
+
|
3727 |
+
#: inc/custom-post-types/course.php:814
|
3728 |
+
msgid "Select author"
|
3729 |
+
msgstr "Seleccionar autor"
|
3730 |
+
|
3731 |
+
#: inc/custom-post-types/course.php:832
|
3732 |
+
msgid "Review Logs"
|
3733 |
+
msgstr "Revisar registros"
|
3734 |
+
|
3735 |
+
#: inc/custom-post-types/course.php:989
|
3736 |
+
msgid "Course Curriculum only appear if course is saved"
|
3737 |
+
msgstr "Curriculum supuesto, sólo aparece si el curso se guarda"
|
3738 |
+
|
3739 |
+
#: inc/custom-post-types/course.php:1146
|
3740 |
+
msgid "Course has approved by Reviewer"
|
3741 |
+
msgstr ""
|
3742 |
+
|
3743 |
+
#: inc/custom-post-types/course.php:1151
|
3744 |
+
msgid "Course has rejected by Reviewer"
|
3745 |
+
msgstr ""
|
3746 |
+
|
3747 |
+
#: inc/custom-post-types/course.php:1156
|
3748 |
+
#, php-format
|
3749 |
+
msgid "Course has submitted by %s"
|
3750 |
+
msgstr ""
|
3751 |
+
|
3752 |
+
#: inc/custom-post-types/course.php:1161
|
3753 |
+
msgid "Course has updated by Reviewer"
|
3754 |
+
msgstr ""
|
3755 |
+
|
3756 |
+
#: inc/custom-post-types/course.php:1198
|
3757 |
+
msgid "Your course has been published"
|
3758 |
+
msgstr "Tu curso ha sido publicado"
|
3759 |
+
|
3760 |
+
#: inc/custom-post-types/course.php:1324
|
3761 |
+
#, php-format
|
3762 |
+
msgctxt "learnpress"
|
3763 |
+
msgid "%d section"
|
3764 |
+
msgid_plural "%d sections"
|
3765 |
+
msgstr[0] ""
|
3766 |
+
msgstr[1] ""
|
3767 |
+
|
3768 |
+
#: inc/custom-post-types/course.php:1327
|
3769 |
+
#, php-format
|
3770 |
+
msgctxt "learnpress"
|
3771 |
+
msgid "%d lesson"
|
3772 |
+
msgid_plural "%d lessons"
|
3773 |
+
msgstr[0] ""
|
3774 |
+
msgstr[1] ""
|
3775 |
+
|
3776 |
+
#: inc/custom-post-types/course.php:1329
|
3777 |
+
msgid "0 lesson"
|
3778 |
+
msgstr "0 lección"
|
3779 |
+
|
3780 |
+
#: inc/custom-post-types/course.php:1333
|
3781 |
+
#, php-format
|
3782 |
+
msgctxt "learnpress"
|
3783 |
+
msgid "%d quiz"
|
3784 |
+
msgid_plural "%d quizzes"
|
3785 |
+
msgstr[0] ""
|
3786 |
+
msgstr[1] ""
|
3787 |
+
|
3788 |
+
#: inc/custom-post-types/course.php:1335
|
3789 |
+
msgid "0 quiz"
|
3790 |
+
msgstr "0 Exámen"
|
3791 |
+
|
3792 |
+
#: inc/custom-post-types/course.php:1340
|
3793 |
+
msgid "No content"
|
3794 |
+
msgstr "No existe contenido"
|
3795 |
+
|
3796 |
+
#: inc/custom-post-types/course.php:1500
|
3797 |
+
msgid "Course Video"
|
3798 |
+
msgstr "Video del Curso"
|
3799 |
+
|
3800 |
+
#: inc/custom-post-types/course.php:1505
|
3801 |
+
msgid "Video ID"
|
3802 |
+
msgstr ""
|
3803 |
+
|
3804 |
+
#: inc/custom-post-types/course.php:1508
|
3805 |
+
msgid "The id of Youtube or Vimeo video"
|
3806 |
+
msgstr "El id del vídeo de Youtube o Vimeo"
|
3807 |
+
|
3808 |
+
#: inc/custom-post-types/course.php:1512
|
3809 |
+
msgid "Video Type"
|
3810 |
+
msgstr "Tipo de Video"
|
3811 |
+
|
3812 |
+
#: inc/custom-post-types/course.php:1515
|
3813 |
+
msgid "Chose video type"
|
3814 |
+
msgstr "Elegir el tipo de vídeo"
|
3815 |
+
|
3816 |
+
#: inc/custom-post-types/course.php:1518
|
3817 |
+
msgid "Youtube"
|
3818 |
+
msgstr ""
|
3819 |
+
|
3820 |
+
#: inc/custom-post-types/course.php:1519
|
3821 |
+
msgid "Vimeo"
|
3822 |
+
msgstr ""
|
3823 |
+
|
3824 |
+
#: inc/custom-post-types/course.php:1523
|
3825 |
+
msgid "Embed width"
|
3826 |
+
msgstr "Ancho del video a Insertar"
|
3827 |
+
|
3828 |
+
#: inc/custom-post-types/course.php:1526
|
3829 |
+
msgid "Set width of embed"
|
3830 |
+
msgstr "Establecer el ancho de inserción"
|
3831 |
+
|
3832 |
+
#: inc/custom-post-types/course.php:1530
|
3833 |
+
msgid "Embed height"
|
3834 |
+
msgstr "Encrustar"
|
3835 |
+
|
3836 |
+
#: inc/custom-post-types/course.php:1533
|
3837 |
+
msgid "Set height of embed"
|
3838 |
+
msgstr "Ajuste altura de inserción"
|
3839 |
+
|
3840 |
+
#: inc/custom-post-types/lesson.php:58 inc/custom-post-types/lesson.php:59
|
3841 |
+
#: inc/custom-post-types/lesson.php:62
|
3842 |
+
msgid "Lessons"
|
3843 |
+
msgstr "Lecciones"
|
3844 |
+
|
3845 |
+
#: inc/custom-post-types/lesson.php:61
|
3846 |
+
msgid "Add New Lesson"
|
3847 |
+
msgstr "Agregar Nueva Lección"
|
3848 |
+
|
3849 |
+
#: inc/custom-post-types/lesson.php:63
|
3850 |
+
msgid "View Lesson"
|
3851 |
+
msgstr "Ver Lección"
|
3852 |
+
|
3853 |
+
#: inc/custom-post-types/lesson.php:65
|
3854 |
+
msgid "Edit Lesson"
|
3855 |
+
msgstr "Editar Lección"
|
3856 |
+
|
3857 |
+
#: inc/custom-post-types/lesson.php:66
|
3858 |
+
msgid "Update Lesson"
|
3859 |
+
msgstr "Actualizar lección"
|
3860 |
+
|
3861 |
+
#: inc/custom-post-types/lesson.php:67
|
3862 |
+
msgid "Search Lessons"
|
3863 |
+
msgstr "Buscar lecciones"
|
3864 |
+
|
3865 |
+
#: inc/custom-post-types/lesson.php:68
|
3866 |
+
msgid "No lesson found"
|
3867 |
+
msgstr "No se ha encontrado ninguna lección"
|
3868 |
+
|
3869 |
+
#: inc/custom-post-types/lesson.php:69
|
3870 |
+
msgid "No lesson found in Trash"
|
3871 |
+
msgstr "No hay lecciones en la Papelera"
|
3872 |
+
|
3873 |
+
#: inc/custom-post-types/lesson.php:103
|
3874 |
+
msgid "Lesson Settings"
|
3875 |
+
msgstr "Configuración de la lección"
|
3876 |
+
|
3877 |
+
#: inc/custom-post-types/lesson.php:107
|
3878 |
+
msgid "Lesson Duration"
|
3879 |
+
msgstr "Duración de la lección"
|
3880 |
+
|
3881 |
+
#: inc/custom-post-types/lesson.php:112
|
3882 |
+
msgid "Duration of the lesson. Set 0 to disable"
|
3883 |
+
msgstr "Duración de la lección. 0 para desactivar"
|
3884 |
+
|
3885 |
+
#: inc/custom-post-types/lesson.php:116
|
3886 |
+
msgid "Preview Lesson"
|
3887 |
+
msgstr "Vista Preliminar de Lección"
|
3888 |
+
|
3889 |
+
#: inc/custom-post-types/lesson.php:119
|
3890 |
+
msgid ""
|
3891 |
+
"If this is a preview lesson, then student can view this lesson content "
|
3892 |
+
"without taking the course"
|
3893 |
+
msgstr ""
|
3894 |
+
"Si esta es una lección de vista previa, entonces el estudiante puede ver el "
|
3895 |
+
"contenido de la lección sin tomar el curso"
|
3896 |
+
|
3897 |
+
#: inc/custom-post-types/lesson.php:142
|
3898 |
+
msgid "Please enter the title of the lesson"
|
3899 |
+
msgstr "Por favor, introduzca el título del exámen"
|
3900 |
+
|
3901 |
+
#: inc/custom-post-types/lesson.php:175
|
3902 |
+
msgid "Format"
|
3903 |
+
msgstr "Formato"
|
3904 |
+
|
3905 |
+
#: inc/custom-post-types/lesson.php:216 inc/custom-post-types/question.php:282
|
3906 |
+
#: inc/custom-post-types/quiz.php:352
|
3907 |
+
msgid "Remove Filter"
|
3908 |
+
msgstr "Borrar filtro"
|
3909 |
+
|
3910 |
+
#: inc/custom-post-types/lesson.php:218 inc/custom-post-types/question.php:284
|
3911 |
+
#: inc/custom-post-types/quiz.php:354
|
3912 |
+
msgid "Filter"
|
3913 |
+
msgstr "Filtrar"
|
3914 |
+
|
3915 |
+
#: inc/custom-post-types/lesson.php:224 inc/custom-post-types/question.php:290
|
3916 |
+
#: inc/custom-post-types/quiz.php:361
|
3917 |
+
msgid "Not assigned yet"
|
3918 |
+
msgstr "No asignado todavía"
|
3919 |
+
|
3920 |
+
#: inc/custom-post-types/lesson.php:237
|
3921 |
+
msgid "Standard"
|
3922 |
+
msgstr "Estándar"
|
3923 |
+
|
3924 |
+
#: inc/custom-post-types/order.php:122
|
3925 |
+
msgid "Order number, user name, user email, course name etc..."
|
3926 |
+
msgstr ""
|
3927 |
+
"Número de pedido, nombre de usuario, correo electrónico del usuario, etc ..."
|
3928 |
+
|
3929 |
+
#: inc/custom-post-types/order.php:195
|
3930 |
+
msgid "Processing..."
|
3931 |
+
msgstr "Procesando..."
|
3932 |
+
|
3933 |
+
#: inc/custom-post-types/order.php:212 inc/custom-post-types/order.php:215
|
3934 |
+
msgid "Apply"
|
3935 |
+
msgstr "Aplicar"
|
3936 |
+
|
3937 |
+
#: inc/custom-post-types/order.php:243 inc/custom-post-types/order.php:418
|
3938 |
+
msgid "View Order"
|
3939 |
+
msgstr "Ver Pedido"
|
3940 |
+
|
3941 |
+
#: inc/custom-post-types/order.php:303 inc/custom-post-types/order.php:414
|
3942 |
+
#: templates/profile/tabs/orders.php:15
|
3943 |
+
msgid "Order"
|
3944 |
+
msgstr "Pedido"
|
3945 |
+
|
3946 |
+
#: inc/custom-post-types/order.php:304
|
3947 |
+
msgid "Student"
|
3948 |
+
msgstr "Alumno"
|
3949 |
+
|
3950 |
+
#: inc/custom-post-types/order.php:308 templates/profile/tabs/orders.php:17
|
3951 |
+
msgid "Status"
|
3952 |
+
msgstr "Estado"
|
3953 |
+
|
3954 |
+
#: inc/custom-post-types/order.php:366
|
3955 |
+
msgid "Course does not exist"
|
3956 |
+
msgstr ""
|
3957 |
+
|
3958 |
+
#: inc/custom-post-types/order.php:415
|
3959 |
+
msgid "Add New Order"
|
3960 |
+
msgstr "Agregar Nueva Órden"
|
3961 |
+
|
3962 |
+
#: inc/custom-post-types/order.php:416 inc/custom-post-types/order.php:563
|
3963 |
+
#: templates/order/order-details.php:13
|
3964 |
+
msgid "Order Details"
|
3965 |
+
msgstr "Información de pedido"
|
3966 |
+
|
3967 |
+
#: inc/custom-post-types/order.php:420
|
3968 |
+
msgid "Update Order"
|
3969 |
+
msgstr "Actualizar Pedido"
|
3970 |
+
|
3971 |
+
#: inc/custom-post-types/order.php:421
|
3972 |
+
msgid "Search Orders"
|
3973 |
+
msgstr "Buscar pedidos"
|
3974 |
+
|
3975 |
+
#: inc/custom-post-types/order.php:422
|
3976 |
+
msgid "No order found"
|
3977 |
+
msgstr "No se ha encontrado ningún pedido"
|
3978 |
+
|
3979 |
+
#: inc/custom-post-types/order.php:423
|
3980 |
+
msgid "No order found in Trash"
|
3981 |
+
msgstr "No hay pedidos en la Papelera"
|
3982 |
+
|
3983 |
+
#: inc/custom-post-types/order.php:486 inc/order/lp-order-functions.php:657
|
3984 |
+
msgctxt "Order status"
|
3985 |
+
msgid "Completed"
|
3986 |
+
msgstr "Completado"
|
3987 |
+
|
3988 |
+
#: inc/custom-post-types/order.php:491
|
3989 |
+
#, php-format
|
3990 |
+
msgid "Completed <span class=\"count\">(%s)</span>"
|
3991 |
+
msgid_plural "Completed <span class=\"count\">(%s)</span>"
|
3992 |
+
msgstr[0] ""
|
3993 |
+
msgstr[1] ""
|
3994 |
+
|
3995 |
+
#: inc/custom-post-types/order.php:494 inc/order/lp-order-functions.php:656
|
3996 |
+
msgctxt "Order status"
|
3997 |
+
msgid "Processing"
|
3998 |
+
msgstr "Procesando"
|
3999 |
+
|
4000 |
+
#: inc/custom-post-types/order.php:499
|
4001 |
+
#, php-format
|
4002 |
+
msgid "Processing <span class=\"count\">(%s)</span>"
|
4003 |
+
msgid_plural "Processing <span class=\"count\">(%s)</span>"
|
4004 |
+
msgstr[0] ""
|
4005 |
+
msgstr[1] ""
|
4006 |
+
|
4007 |
+
#: inc/custom-post-types/order.php:502
|
4008 |
+
msgctxt "Order status"
|
4009 |
+
msgid "Pending Payment"
|
4010 |
+
msgstr "Pago Pendiente"
|
4011 |
+
|
4012 |
+
#: inc/custom-post-types/order.php:507
|
4013 |
+
#, php-format
|
4014 |
+
msgid "Pending Payment <span class=\"count\">(%s)</span>"
|
4015 |
+
msgid_plural "Pending Payment <span class=\"count\">(%s)</span>"
|
4016 |
+
msgstr[0] ""
|
4017 |
+
msgstr[1] ""
|
4018 |
+
|
4019 |
+
#: inc/custom-post-types/order.php:510 inc/order/lp-order-functions.php:658
|
4020 |
+
msgctxt "Order status"
|
4021 |
+
msgid "On Hold"
|
4022 |
+
msgstr ""
|
4023 |
+
|
4024 |
+
#: inc/custom-post-types/order.php:515
|
4025 |
+
#, php-format
|
4026 |
+
msgid "On Hold <span class=\"count\">(%s)</span>"
|
4027 |
+
msgid_plural "On Hold <span class=\"count\">(%s)</span>"
|
4028 |
+
msgstr[0] ""
|
4029 |
+
msgstr[1] ""
|
4030 |
+
|
4031 |
+
#: inc/custom-post-types/order.php:518 inc/order/lp-order-functions.php:661
|
4032 |
+
msgctxt "Order status"
|
4033 |
+
msgid "Cancelled"
|
4034 |
+
msgstr ""
|
4035 |
+
|
4036 |
+
#: inc/custom-post-types/order.php:523
|
4037 |
+
#, php-format
|
4038 |
+
msgid "Cancelled <span class=\"count\">(%s)</span>"
|
4039 |
+
msgid_plural "Cancelled <span class=\"count\">(%s)</span>"
|
4040 |
+
msgstr[0] ""
|
4041 |
+
msgstr[1] ""
|
4042 |
+
|
4043 |
+
#: inc/custom-post-types/order.php:526 inc/order/lp-order-functions.php:659
|
4044 |
+
msgctxt "Order status"
|
4045 |
+
msgid "Refunded"
|
4046 |
+
msgstr ""
|
4047 |
+
|
4048 |
+
#: inc/custom-post-types/order.php:531
|
4049 |
+
#, php-format
|
4050 |
+
msgid "Refunded <span class=\"count\">(%s)</span>"
|
4051 |
+
msgid_plural "Refunded <span class=\"count\">(%s)</span>"
|
4052 |
+
msgstr[0] ""
|
4053 |
+
msgstr[1] ""
|
4054 |
+
|
4055 |
+
#: inc/custom-post-types/order.php:534 inc/order/lp-order-functions.php:660
|
4056 |
+
msgctxt "Order status"
|
4057 |
+
msgid "Failed"
|
4058 |
+
msgstr ""
|
4059 |
+
|
4060 |
+
#: inc/custom-post-types/order.php:539
|
4061 |
+
#, php-format
|
4062 |
+
msgid "Failed <span class=\"count\">(%s)</span>"
|
4063 |
+
msgid_plural "Failed <span class=\"count\">(%s)</span>"
|
4064 |
+
msgstr[0] ""
|
4065 |
+
msgstr[1] ""
|
4066 |
+
|
4067 |
+
#: inc/custom-post-types/order.php:564
|
4068 |
+
msgid "Order Actions"
|
4069 |
+
msgstr "Acciones del Pedido"
|
4070 |
+
|
4071 |
+
#: inc/custom-post-types/question.php:73 inc/updates/_update-from-0.9.php:1184
|
4072 |
+
msgid "Question Tag"
|
4073 |
+
msgstr "Etiqueta de la pregunta"
|
4074 |
+
|
4075 |
+
#: inc/custom-post-types/question.php:76 inc/updates/_update-from-0.9.php:1169
|
4076 |
+
#: inc/updates/_update-from-0.9.php:1187
|
4077 |
+
msgid "Add New Tag"
|
4078 |
+
msgstr "Añadir nueva etiqueta"
|
4079 |
+
|
4080 |
+
#: inc/custom-post-types/question.php:77 inc/updates/_update-from-0.9.php:1170
|
4081 |
+
#: inc/updates/_update-from-0.9.php:1188
|
4082 |
+
msgid "All Tags"
|
4083 |
+
msgstr "Todas las etiquetas"
|
4084 |
+
|
4085 |
+
#: inc/custom-post-types/question.php:94 inc/custom-post-types/question.php:95
|
4086 |
+
msgid "Question Bank"
|
4087 |
+
msgstr "Banco de preguntas"
|
4088 |
+
|
4089 |
+
#: inc/custom-post-types/question.php:96
|
4090 |
+
msgid "Question"
|
4091 |
+
msgstr "Pregunta"
|
4092 |
+
|
4093 |
+
#: inc/custom-post-types/question.php:98
|
4094 |
+
msgid "View Question"
|
4095 |
+
msgstr "Ver Pregunta"
|
4096 |
+
|
4097 |
+
#: inc/custom-post-types/question.php:99
|
4098 |
+
msgid "Add New Question"
|
4099 |
+
msgstr "Añadir Pregunta Nueva"
|
4100 |
+
|
4101 |
+
#: inc/custom-post-types/question.php:101
|
4102 |
+
msgid "Edit Question"
|
4103 |
+
msgstr "Editar Pregunta"
|
4104 |
+
|
4105 |
+
#: inc/custom-post-types/question.php:102
|
4106 |
+
msgid "Update Question"
|
4107 |
+
msgstr "Actualizar pregunta"
|
4108 |
+
|
4109 |
+
#: inc/custom-post-types/question.php:103
|
4110 |
+
msgid "Search Questions"
|
4111 |
+
msgstr "Buscar preguntas"
|
4112 |
+
|
4113 |
+
#: inc/custom-post-types/question.php:105
|
4114 |
+
msgid "No questions found in trash"
|
4115 |
+
msgstr "No se encontraron preguntas en papelera"
|
4116 |
+
|
4117 |
+
#: inc/custom-post-types/question.php:127
|
4118 |
+
#: inc/question/abstract-lp-question.php:662
|
4119 |
+
msgid "Answer"
|
4120 |
+
msgstr "Respuesta"
|
4121 |
+
|
4122 |
+
#: inc/custom-post-types/question.php:152
|
4123 |
+
msgid "Mark for this question"
|
4124 |
+
msgstr "Elegir esta pregunta"
|
4125 |
+
|
4126 |
+
#: inc/custom-post-types/question.php:156
|
4127 |
+
msgid "Mark for choosing the right answer"
|
4128 |
+
msgstr "Marcar para elegir la respuesta correcta"
|
4129 |
+
|
4130 |
+
#: inc/custom-post-types/question.php:161
|
4131 |
+
msgid "Question explanation"
|
4132 |
+
msgstr "Explicación pregunta"
|
4133 |
+
|
4134 |
+
#: inc/custom-post-types/question.php:164
|
4135 |
+
msgid "Explain why an option is true and other is false"
|
4136 |
+
msgstr "Explicar por qué una opción es verdadera y la otra es falsa"
|
4137 |
+
|
4138 |
+
#: inc/custom-post-types/question.php:168
|
4139 |
+
msgid "Question hint"
|
4140 |
+
msgstr "Pista"
|
4141 |
+
|
4142 |
+
#: inc/custom-post-types/question.php:171
|
4143 |
+
msgid "Instruction for user to select the right answer."
|
4144 |
+
msgstr "Instrucción para el usuario seleccionar la respuesta correcta."
|
4145 |
+
|
4146 |
+
#: inc/custom-post-types/question.php:193
|
4147 |
+
msgid "Please enter the title of the question."
|
4148 |
+
msgstr "Introduce el título de la pregunta"
|
4149 |
+
|
4150 |
+
#: inc/custom-post-types/question.php:197
|
4151 |
+
msgid "Please enter question type."
|
4152 |
+
msgstr "Introduce el tipo de pregunta"
|
4153 |
+
|
4154 |
+
#: inc/custom-post-types/quiz.php:88 inc/custom-post-types/quiz.php:89
|
4155 |
+
#: inc/custom-post-types/quiz.php:93
|
4156 |
+
msgid "Quizzes"
|
4157 |
+
msgstr "Exámenes"
|
4158 |
+
|
4159 |
+
#: inc/custom-post-types/quiz.php:91
|
4160 |
+
msgid "Add New Quiz"
|
4161 |
+
msgstr "Añadir exámen"
|
4162 |
+
|
4163 |
+
#: inc/custom-post-types/quiz.php:92
|
4164 |
+
msgid "Edit Quiz"
|
4165 |
+
msgstr "Editar exámen"
|
4166 |
+
|
4167 |
+
#: inc/custom-post-types/quiz.php:94
|
4168 |
+
msgid "View Quiz"
|
4169 |
+
msgstr "Ver Exámen"
|
4170 |
+
|
4171 |
+
#: inc/custom-post-types/quiz.php:95
|
4172 |
+
msgid "New Quiz"
|
4173 |
+
msgstr "Nuevo exámen"
|
4174 |
+
|
4175 |
+
#: inc/custom-post-types/quiz.php:96
|
4176 |
+
msgid "Update Quiz"
|
4177 |
+
msgstr "Actualizar exámen"
|
4178 |
+
|
4179 |
+
#: inc/custom-post-types/quiz.php:97
|
4180 |
+
msgid "Search Quizzes"
|
4181 |
+
msgstr "Buscar Exámenes"
|
4182 |
+
|
4183 |
+
#: inc/custom-post-types/quiz.php:98
|
4184 |
+
#, php-format
|
4185 |
+
msgid ""
|
4186 |
+
"You have not got any quizzes yet. Click <a href=\"%s\">Add new</a> to start"
|
4187 |
+
msgstr ""
|
4188 |
+
"Aún no has conseguido ningún exámen. Hz clic en <a href=\"%s\">Agregar "
|
4189 |
+
"nuevo</a> para iniciar"
|
4190 |
+
|
4191 |
+
#: inc/custom-post-types/quiz.php:99
|
4192 |
+
msgid "No quiz found in Trash"
|
4193 |
+
msgstr "No hay exámen en la Papelera"
|
4194 |
+
|
4195 |
+
#: inc/custom-post-types/quiz.php:152
|
4196 |
+
msgid "Show/Hide Question"
|
4197 |
+
msgstr "Mostrar/Ocultar Pregunta"
|
4198 |
+
|
4199 |
+
#: inc/custom-post-types/quiz.php:153
|
4200 |
+
msgid "Show/Hide list questions on this quiz."
|
4201 |
+
msgstr "Mostrar / Ocultar lista de preguntas en este examen."
|
4202 |
+
|
4203 |
+
#: inc/custom-post-types/quiz.php:158
|
4204 |
+
msgid "Show"
|
4205 |
+
msgstr "Mostrar"
|
4206 |
+
|
4207 |
+
#: inc/custom-post-types/quiz.php:165
|
4208 |
+
msgid "Duration of the quiz. Set 0 to disable."
|
4209 |
+
msgstr "Duración de la prueba. Establecer 0 para desactivar."
|
4210 |
+
|
4211 |
+
#: inc/custom-post-types/quiz.php:173
|
4212 |
+
msgid "Passing Grade Type"
|
4213 |
+
msgstr "Tipo de grado de aprobación"
|
4214 |
+
|
4215 |
+
#: inc/custom-post-types/quiz.php:174 inc/custom-post-types/quiz.php:186
|
4216 |
+
msgid "Requires user reached this point to pass the quiz."
|
4217 |
+
msgstr "Requiere que el usuario llega a este punto para aprobar la prueba."
|
4218 |
+
|
4219 |
+
#: inc/custom-post-types/quiz.php:179
|
4220 |
+
msgid "Percentage"
|
4221 |
+
msgstr "Porcentaje"
|
4222 |
+
|
4223 |
+
#: inc/custom-post-types/quiz.php:180
|
4224 |
+
msgid "Point"
|
4225 |
+
msgstr "Punto"
|
4226 |
+
|
4227 |
+
#: inc/custom-post-types/quiz.php:185
|
4228 |
+
msgid "Passing Grade (<span>%</span>)"
|
4229 |
+
msgstr "Grado aprovatorio(<span>%</span>)"
|
4230 |
+
|
4231 |
+
#: inc/custom-post-types/quiz.php:194
|
4232 |
+
msgid "Re-take"
|
4233 |
+
msgstr "Volver a tomar"
|
4234 |
+
|
4235 |
+
#: inc/custom-post-types/quiz.php:197
|
4236 |
+
msgid "How many times the user can re-take this quiz. Set to 0 to disable"
|
4237 |
+
msgstr ""
|
4238 |
+
"Cuántas veces el usuario puede volver a tomar el examen. Se establece en 0 "
|
4239 |
+
"para desactivar"
|
4240 |
+
|
4241 |
+
#: inc/custom-post-types/quiz.php:202
|
4242 |
+
msgid "Show correct answer"
|
4243 |
+
msgstr "Mostrar respuesta correcta"
|
4244 |
+
|
4245 |
+
#: inc/custom-post-types/quiz.php:205
|
4246 |
+
msgid "Show the correct answer in result of the quiz."
|
4247 |
+
msgstr "Mostrar la respuesta correcta en el resultado del examen."
|
4248 |
+
|
4249 |
+
#: inc/custom-post-types/quiz.php:209
|
4250 |
+
msgid "Show check answer"
|
4251 |
+
msgstr "Mostrar verificación de respuesta"
|
4252 |
+
|
4253 |
+
#: inc/custom-post-types/quiz.php:212
|
4254 |
+
msgid "Show button to check answer while doing quiz."
|
4255 |
+
msgstr "Mostrar botón para verificar la respuesta mientras se hace el exámen"
|
4256 |
+
|
4257 |
+
#: inc/custom-post-types/quiz.php:216
|
4258 |
+
msgid "Show hint"
|
4259 |
+
msgstr "Mostrar Pista"
|
4260 |
+
|
4261 |
+
#: inc/custom-post-types/quiz.php:219
|
4262 |
+
msgid "Show button to hint answer while doing quiz."
|
4263 |
+
msgstr "Mostrar Botón pista mientras se hace el exámen."
|
4264 |
+
|
4265 |
+
#: inc/custom-post-types/quiz.php:227
|
4266 |
+
msgid "Show explanation"
|
4267 |
+
msgstr "Mostrar explicación"
|
4268 |
+
|
4269 |
+
#: inc/custom-post-types/quiz.php:230
|
4270 |
+
msgid "Show explanation of question after user checking answer."
|
4271 |
+
msgstr ""
|
4272 |
+
"Mostrar explicación de la pregunta después de la respuesta ddel uuario."
|
4273 |
+
|
4274 |
+
#: inc/custom-post-types/quiz.php:256
|
4275 |
+
msgid "Please enter the title of the quiz"
|
4276 |
+
msgstr "Escribe aquí el título del archivo"
|
4277 |
+
|
4278 |
+
#: inc/custom-post-types/quiz.php:375
|
4279 |
+
#, php-format
|
4280 |
+
msgctxt "learnpress"
|
4281 |
+
msgid "%d question"
|
4282 |
+
msgid_plural "%d questions"
|
4283 |
+
msgstr[0] ""
|
4284 |
+
msgstr[1] ""
|
4285 |
+
|
4286 |
+
#: inc/custom-post-types/quiz.php:375
|
4287 |
+
msgid "This quiz has no questions"
|
4288 |
+
msgstr "Este examen no tiene preguntas"
|
4289 |
+
|
4290 |
+
#: inc/emails/class-lp-email-become-an-instructor.php:16
|
4291 |
+
#: inc/emails/class-lp-email-become-an-instructor.php:22
|
4292 |
+
msgid "Become an instructor"
|
4293 |
+
msgstr "Conviértete en Mentor"
|
4294 |
+
|
4295 |
+
#: inc/emails/class-lp-email-become-an-instructor.php:21
|
4296 |
+
msgid "[{site_title}] You have enrolled course ({course_name})"
|
4297 |
+
msgstr "[{site_title}]Te has inscrito al curso ({course_name})"
|
4298 |
+
|
4299 |
+
#: inc/emails/class-lp-email-become-an-instructor.php:24
|
4300 |
+
#: inc/emails/class-lp-email-new-order.php:26
|
4301 |
+
msgid "Shortcodes"
|
4302 |
+
msgstr ""
|
4303 |
+
|
4304 |
+
#: inc/emails/class-lp-email-enrolled-course.php:25
|
4305 |
+
msgid "[{{site_title}}] You have enrolled in this course ({{course_name}})"
|
4306 |
+
msgstr "[{{site_title}}] Te has inscrito al curso ({{course_name}})"
|
4307 |
+
|
4308 |
+
#: inc/emails/class-lp-email-finished-course.php:24
|
4309 |
+
msgid "[{{site_title}}] You have finished this course ({{course_name}})"
|
4310 |
+
msgstr "[{{site_title}}] Has terminado este curso ({{course_name}})"
|
4311 |
+
|
4312 |
+
#: inc/emails/class-lp-email-new-course.php:25
|
4313 |
+
msgid ""
|
4314 |
+
"[{{site_title}}] New course has been submitted for review ({{course_name}})"
|
4315 |
+
msgstr ""
|
4316 |
+
"[{{site_title}}] Se ha enviado nuevo curso para su revisión ({{course_name}})"
|
4317 |
+
|
4318 |
+
#: inc/emails/class-lp-email-new-order-customer.php:26
|
4319 |
+
msgid "[{{site_title}}] Order placed"
|
4320 |
+
msgstr "[{{site_title}}] Nuevo pedido realizado"
|
4321 |
+
|
4322 |
+
#: inc/emails/class-lp-email-new-order-customer.php:27
|
4323 |
+
msgid "Order placed"
|
4324 |
+
msgstr "Pedido"
|
4325 |
+
|
4326 |
+
#: inc/emails/class-lp-email-new-order.php:24
|
4327 |
+
msgid "[{{site_title}}] New order placed"
|
4328 |
+
msgstr "[{{site_title}}] Nuevo pedido realizado"
|
4329 |
+
|
4330 |
+
#: inc/emails/class-lp-email-published-course.php:21
|
4331 |
+
msgid "Approved course"
|
4332 |
+
msgstr "Curso aprobado"
|
4333 |
+
|
4334 |
+
#: inc/emails/class-lp-email-published-course.php:26
|
4335 |
+
msgid "[{{site_title}}] Your course {{course_name}} has been approved"
|
4336 |
+
msgstr "[{{site_title}}] Tu curso {{course_name}} ha sido aprobado"
|
4337 |
+
|
4338 |
+
#: inc/emails/class-lp-email-published-course.php:27
|
4339 |
+
msgid "Course approved"
|
4340 |
+
msgstr "Curso Aprobado"
|
4341 |
+
|
4342 |
+
#: inc/emails/class-lp-email-rejected-course.php:19
|
4343 |
+
#: inc/emails/class-lp-email-rejected-course.php:25
|
4344 |
+
msgid "Rejected course"
|
4345 |
+
msgstr "Curso rechazado"
|
4346 |
+
|
4347 |
+
#: inc/emails/class-lp-email-rejected-course.php:24
|
4348 |
+
msgid "[{{site_title}}] Your course {{course_name}} has been rejected"
|
4349 |
+
msgstr "[{{site_title}}] Tu curso {{course_name}} ha sido aprobado"
|
4350 |
+
|
4351 |
+
#: inc/emails/class-lp-email-user-order-completed.php:26
|
4352 |
+
msgid "Your order {{order_date}} is completed"
|
4353 |
+
msgstr "Tu pedido {{order_date}} está completo"
|
4354 |
+
|
4355 |
+
#: inc/emails/class-lp-email-user-order-completed.php:27
|
4356 |
+
msgid "Your order {{order_number}} is completed"
|
4357 |
+
msgstr "Tu pedido{{order_number}} está completado"
|
4358 |
+
|
4359 |
+
#: inc/emails/class-lp-email.php:329
|
4360 |
+
msgid "Template file copied to theme."
|
4361 |
+
msgstr "Archivo de plantilla copiado al tema."
|
4362 |
+
|
4363 |
+
#: inc/emails/class-lp-email.php:344
|
4364 |
+
msgid "Template file deleted from theme."
|
4365 |
+
msgstr ""
|
4366 |
+
|
4367 |
+
#: inc/emails/class-lp-email.php:543
|
4368 |
+
msgid "Could not write to template file."
|
4369 |
+
msgstr ""
|
4370 |
+
|
4371 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:90
|
4372 |
+
msgid "Pay with Paypal"
|
4373 |
+
msgstr ""
|
4374 |
+
|
4375 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:231
|
4376 |
+
msgid "Error: order ID and key were not found in \"custom\"."
|
4377 |
+
msgstr ""
|
4378 |
+
|
4379 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:241
|
4380 |
+
#, php-format
|
4381 |
+
msgid "Error: Order Keys do not match %s and %s."
|
4382 |
+
msgstr ""
|
4383 |
+
|
4384 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:290
|
4385 |
+
msgid "Paypal settings is not setup"
|
4386 |
+
msgstr ""
|
4387 |
+
|
4388 |
+
#: inc/gateways/paypal/class-lp-gateway-paypal.php:377
|
4389 |
+
msgid "IPN payment completed"
|
4390 |
+
msgstr ""
|
4391 |
+
|
4392 |
+
#: inc/gateways/paypal/paypal-ipn/ipn.php:52
|
4393 |
+
msgid "Order on "
|
4394 |
+
msgstr "Ordenar por "
|
4395 |
+
|
4396 |
+
#: inc/libraries/meta-box/inc/common.php:49
|
4397 |
+
msgid "Extensions"
|
4398 |
+
msgstr ""
|
4399 |
+
|
4400 |
+
#: inc/libraries/meta-box/inc/field.php:217
|
4401 |
+
msgid "+"
|
4402 |
+
msgstr ""
|
4403 |
+
|
4404 |
+
#: inc/libraries/meta-box/inc/field.php:226
|
4405 |
+
msgid "–"
|
4406 |
+
msgstr ""
|
4407 |
+
|
4408 |
+
#: inc/libraries/meta-box/inc/meta-box.php:239
|
4409 |
+
msgid "Please correct the errors highlighted below and try again."
|
4410 |
+
msgstr ""
|
4411 |
+
|
4412 |
+
#: inc/libraries/meta-box/inc/fields/button.php:31
|
4413 |
+
msgid "Click me"
|
4414 |
+
msgstr ""
|
4415 |
+
|
4416 |
+
#: inc/libraries/meta-box/inc/fields/file-advanced.php:20
|
4417 |
+
msgid "Select Files"
|
4418 |
+
msgstr "Selecciona archivos"
|
4419 |
+
|
4420 |
+
#: inc/libraries/meta-box/inc/fields/file-advanced.php:59
|
4421 |
+
msgctxt "file upload"
|
4422 |
+
msgid "Select or Upload Files"
|
4423 |
+
msgstr ""
|
4424 |
+
|
4425 |
+
#: inc/libraries/meta-box/inc/fields/file-advanced.php:95
|
4426 |
+
#: inc/libraries/meta-box/inc/fields/file.php:159
|
4427 |
+
msgctxt "file upload"
|
4428 |
+
msgid "Delete"
|
4429 |
+
msgstr ""
|
4430 |
+
|
4431 |
+
#: inc/libraries/meta-box/inc/fields/file-advanced.php:96
|
4432 |
+
#: inc/libraries/meta-box/inc/fields/file.php:160
|
4433 |
+
msgctxt "file upload"
|
4434 |
+
msgid "Edit"
|
4435 |
+
msgstr ""
|
4436 |
+
|
4437 |
+
#: inc/libraries/meta-box/inc/fields/file-input.php:14
|
4438 |
+
msgid "Select File"
|
4439 |
+
msgstr "Seleccionar Archivo"
|
4440 |
+
|
4441 |
+
#: inc/libraries/meta-box/inc/fields/file-input.php:36
|
4442 |
+
msgid "Select"
|
4443 |
+
msgstr "Seleccionar"
|
4444 |
+
|
4445 |
+
#: inc/libraries/meta-box/inc/fields/file.php:16
|
4446 |
+
#, php-format
|
4447 |
+
msgid "You may only upload maximum %d file"
|
4448 |
+
msgstr "Solo puedes subir un máximo de %d archivo"
|
4449 |
+
|
4450 |
+
#: inc/libraries/meta-box/inc/fields/file.php:17
|
4451 |
+
#, php-format
|
4452 |
+
msgid "You may only upload maximum %d files"
|
4453 |
+
msgstr "Sólo se puede cargar un máximo de %d archivos"
|
4454 |
+
|
4455 |
+
#: inc/libraries/meta-box/inc/fields/file.php:90
|
4456 |
+
msgid "Error: Cannot delete file"
|
4457 |
+
msgstr "Lo siento, este archivo no puede borrarse"
|
4458 |
+
|
4459 |
+
#: inc/libraries/meta-box/inc/fields/file.php:103
|
4460 |
+
msgctxt "file upload"
|
4461 |
+
msgid "Upload Files"
|
4462 |
+
msgstr "Subir archivos"
|
4463 |
+
|
4464 |
+
#: inc/libraries/meta-box/inc/fields/file.php:104
|
4465 |
+
msgctxt "file upload"
|
4466 |
+
msgid "+ Add new file"
|
4467 |
+
msgstr "+Añadir nuevo archivo"
|
4468 |
+
|
4469 |
+
#: inc/libraries/meta-box/inc/fields/image-advanced.php:20
|
4470 |
+
msgid "Select Images"
|
4471 |
+
msgstr "Seleccionar Imágenes"
|
4472 |
+
|
4473 |
+
#: inc/libraries/meta-box/inc/fields/image-advanced.php:64
|
4474 |
+
msgctxt "image upload"
|
4475 |
+
msgid "Select or Upload Images"
|
4476 |
+
msgstr "Seleccionar o cargar imágenes"
|
4477 |
+
|
4478 |
+
#: inc/libraries/meta-box/inc/fields/image-advanced.php:100
|
4479 |
+
#: inc/libraries/meta-box/inc/fields/image.php:127
|
4480 |
+
msgctxt "image upload"
|
4481 |
+
msgid "Delete"
|
4482 |
+
msgstr "Borrar"
|
4483 |
+
|
4484 |
+
#: inc/libraries/meta-box/inc/fields/image-advanced.php:101
|
4485 |
+
#: inc/libraries/meta-box/inc/fields/image.php:128
|
4486 |
+
msgctxt "image upload"
|
4487 |
+
msgid "Edit"
|
4488 |
+
msgstr "Editar"
|
4489 |
+
|
4490 |
+
#: inc/libraries/meta-box/inc/fields/image.php:63
|
4491 |
+
#: inc/libraries/meta-box/inc/fields/thickbox-image.php:30
|
4492 |
+
msgctxt "image upload"
|
4493 |
+
msgid "Upload Images"
|
4494 |
+
msgstr "Subir Imágenes"
|
4495 |
+
|
4496 |
+
#: inc/libraries/meta-box/inc/fields/image.php:64
|
4497 |
+
msgctxt "image upload"
|
4498 |
+
msgid "+ Add new image"
|
4499 |
+
msgstr "+ Añadir nueva imagen"
|
4500 |
+
|
4501 |
+
#: inc/libraries/meta-box/inc/fields/map.php:43
|
4502 |
+
msgid "Find Address"
|
4503 |
+
msgstr "Encontrar dirección"
|
4504 |
+
|
4505 |
+
#: inc/libraries/meta-box/inc/fields/oembed.php:49
|
4506 |
+
msgid "Embed HTML not available."
|
4507 |
+
msgstr "No disponible"
|
4508 |
+
|
4509 |
+
#: inc/libraries/meta-box/inc/fields/plupload-image.php:96
|
4510 |
+
msgctxt "image upload"
|
4511 |
+
msgid "Drop images here"
|
4512 |
+
msgstr "Arrastrar imágenes aquí"
|
4513 |
+
|
4514 |
+
#: inc/libraries/meta-box/inc/fields/plupload-image.php:97
|
4515 |
+
msgctxt "image upload"
|
4516 |
+
msgid "or"
|
4517 |
+
msgstr "o"
|
4518 |
+
|
4519 |
+
#: inc/libraries/meta-box/inc/fields/plupload-image.php:98
|
4520 |
+
msgctxt "image upload"
|
4521 |
+
msgid "Select Files"
|
4522 |
+
msgstr "Selecciona archivos"
|
4523 |
+
|
4524 |
+
#: inc/libraries/meta-box/inc/fields/plupload-image.php:172
|
4525 |
+
msgctxt "image upload"
|
4526 |
+
msgid "Allowed Image Files"
|
4527 |
+
msgstr "Archivos de imagen permitido"
|
4528 |
+
|
4529 |
+
#: inc/libraries/meta-box/inc/fields/post.php:46
|
4530 |
+
msgid "Post"
|
4531 |
+
msgstr "Publicar"
|
4532 |
+
|
4533 |
+
#: inc/libraries/meta-box/inc/fields/post.php:59
|
4534 |
+
#: inc/libraries/meta-box/inc/fields/taxonomy.php:36
|
4535 |
+
#: inc/libraries/meta-box/inc/fields/user.php:56
|
4536 |
+
#, php-format
|
4537 |
+
msgid "Select a %s"
|
4538 |
+
msgstr "Selecciona un %s"
|
4539 |
+
|
4540 |
+
#: inc/libraries/meta-box/inc/fields/user.php:48
|
4541 |
+
msgid "User"
|
4542 |
+
msgstr "Usuario"
|
4543 |
+
|
4544 |
+
#: inc/order/class-lp-order.php:125
|
4545 |
+
msgid "Error! Update order failed"
|
4546 |
+
msgstr "¡Error! Falló la actualización de la orden"
|
4547 |
+
|
4548 |
+
#: inc/order/class-lp-order.php:372 inc/order/lp-order-functions.php:16
|
4549 |
+
msgid "Free Payment"
|
4550 |
+
msgstr "Gratuito"
|
4551 |
+
|
4552 |
+
#: inc/order/class-lp-order.php:446
|
4553 |
+
#, php-format
|
4554 |
+
msgctxt "full name"
|
4555 |
+
msgid "%1$s"
|
4556 |
+
msgstr ""
|
4557 |
+
|
4558 |
+
#: inc/order/lp-order-functions.php:37
|
4559 |
+
msgid "Order on"
|
4560 |
+
msgstr "Ordenar por"
|
4561 |
+
|
4562 |
+
#: inc/order/lp-order-functions.php:44
|
4563 |
+
msgid "Invalid order status"
|
4564 |
+
msgstr "Estado de la Órden Inválida"
|
4565 |
+
|
4566 |
+
#: inc/order/lp-order-functions.php:655
|
4567 |
+
msgctxt "Order status"
|
4568 |
+
msgid "Pending"
|
4569 |
+
msgstr "Pendiente"
|
4570 |
+
|
4571 |
+
#: inc/order/lp-order-functions.php:670
|
4572 |
+
msgid ""
|
4573 |
+
"Order received in case user buy a course but doesn't finalise the order."
|
4574 |
+
msgstr ""
|
4575 |
+
"Orden recibida en caso que el usuario compre un curso, pero no finaliza el "
|
4576 |
+
"pedido."
|
4577 |
+
|
4578 |
+
#: inc/order/lp-order-functions.php:671
|
4579 |
+
msgid "Payment failed or was declined (unpaid)."
|
4580 |
+
msgstr "Error en el pago o se ha rechazado (sin pagar)."
|
4581 |
+
|
4582 |
+
#: inc/order/lp-order-functions.php:672
|
4583 |
+
msgid "Payment received and the order is awaiting fulfillment."
|
4584 |
+
msgstr "Pago recibido la orden se esta procesando."
|
4585 |
+
|
4586 |
+
#: inc/order/lp-order-functions.php:673
|
4587 |
+
msgid "Order fulfilled and complete."
|
4588 |
+
msgstr "Pedido recibido y completado."
|
4589 |
+
|
4590 |
+
#: inc/order/lp-order-functions.php:674
|
4591 |
+
msgid "Awaiting payment."
|
4592 |
+
msgstr "Esperando el pago."
|
4593 |
+
|
4594 |
+
#: inc/order/lp-order-functions.php:675
|
4595 |
+
msgid "The order is cancelled by an admin or the customer."
|
4596 |
+
msgstr "La orden está cancelada por un administrador o por el cliente."
|
4597 |
+
|
4598 |
+
#: inc/order/lp-order-functions.php:676
|
4599 |
+
msgid "Refunded is to indicate that the refund to the customer has been sent."
|
4600 |
+
msgstr ""
|
4601 |
+
"Reembolsado es para indicar que la devolución se le ha enviado al cliente ."
|
4602 |
+
|
4603 |
+
#: inc/order/lp-order-functions.php:716
|
4604 |
+
#, php-format
|
4605 |
+
msgid "You have enrolled in this course. <a href=\"%s\">Order details</a>"
|
4606 |
+
msgstr "Te has inscrito al curso. <a href=\"%s\">Detalles del pedido</a> ."
|
4607 |
+
|
4608 |
+
#: inc/question/abstract-lp-question.php:138
|
4609 |
+
#: inc/question/class-lp-question-multi-choice.php:62
|
4610 |
+
#: inc/question/class-lp-question-single-choice.php:129
|
4611 |
+
msgid "Option First"
|
4612 |
+
msgstr "Primera opción"
|
4613 |
+
|
4614 |
+
#: inc/question/abstract-lp-question.php:143
|
4615 |
+
#: inc/question/class-lp-question-multi-choice.php:67
|
4616 |
+
#: inc/question/class-lp-question-single-choice.php:134
|
4617 |
+
msgid "Option Seconds"
|
4618 |
+
msgstr "Segunda opción"
|
4619 |
+
|
4620 |
+
#: inc/question/abstract-lp-question.php:148
|
4621 |
+
#: inc/question/class-lp-question-multi-choice.php:72
|
4622 |
+
#: inc/question/class-lp-question-single-choice.php:139
|
4623 |
+
msgid "Option Third"
|
4624 |
+
msgstr "Tercera opción"
|
4625 |
+
|
4626 |
+
#: inc/question/abstract-lp-question.php:308
|
4627 |
+
#: inc/question/abstract-lp-question.php:319
|
4628 |
+
#: inc/question/abstract-lp-question.php:706
|
4629 |
+
#: inc/question/abstract-lp-question.php:717
|
4630 |
+
#, php-format
|
4631 |
+
msgid "Function %s should override from its child"
|
4632 |
+
msgstr "La función %s sobrescribirá a la función hijo"
|
4633 |
+
|
4634 |
+
#: inc/question/abstract-lp-question.php:683
|
4635 |
+
msgid "Change type of this question to"
|
4636 |
+
msgstr "Cambie el tipo de pregunta a"
|
4637 |
+
|
4638 |
+
#: inc/question/abstract-lp-question.php:685
|
4639 |
+
msgid "--Select type--"
|
4640 |
+
msgstr "-- Selecciona una opción --"
|
4641 |
+
|
4642 |
+
#: inc/question/class-lp-question-factory.php:261
|
4643 |
+
msgid "Option"
|
4644 |
+
msgstr "Opción"
|
4645 |
+
|
4646 |
+
#: inc/question/class-lp-question-factory.php:313
|
4647 |
+
msgid "True Or False"
|
4648 |
+
msgstr "Verdadero o falso"
|
4649 |
+
|
4650 |
+
#: inc/question/class-lp-question-factory.php:314
|
4651 |
+
msgid "Multi Choice"
|
4652 |
+
msgstr "Opción múltiple"
|
4653 |
+
|
4654 |
+
#: inc/question/class-lp-question-factory.php:315
|
4655 |
+
msgid "Single Choice"
|
4656 |
+
msgstr "Opcion unica"
|
4657 |
+
|
4658 |
+
#: inc/question/class-lp-question-multi-choice.php:158
|
4659 |
+
msgid "Add answer"
|
4660 |
+
msgstr "Añadir respuesta"
|
4661 |
+
|
4662 |
+
#: inc/question/class-lp-question-multi-choice.php:188
|
4663 |
+
msgid ""
|
4664 |
+
"No answer added to question or you must select at least one the answer is "
|
4665 |
+
"correct!"
|
4666 |
+
msgstr ""
|
4667 |
+
"No se añadió respuesta a la pregunta o debes establecer la respuesta "
|
4668 |
+
"correcta!"
|
4669 |
+
|
4670 |
+
#: inc/question/class-lp-question-single-choice.php:105
|
4671 |
+
msgid "No answer added to question or you must set an answer is correct!"
|
4672 |
+
msgstr ""
|
4673 |
+
"No se añadió respuesta a la pregunta o debes establecer la respuesta "
|
4674 |
+
"correcta!"
|
4675 |
+
|
4676 |
+
#: inc/question/class-lp-question-true-or-false.php:50
|
4677 |
+
msgid "True"
|
4678 |
+
msgstr "Verdadero"
|
4679 |
+
|
4680 |
+
#: inc/question/class-lp-question-true-or-false.php:55
|
4681 |
+
msgid "False"
|
4682 |
+
msgstr "Falso"
|
4683 |
+
|
4684 |
+
#: inc/quiz/class-lp-quiz-factory.php:118
|
4685 |
+
msgid "You need to login to take this quiz."
|
4686 |
+
msgstr "Necesitas iniciar sesión para hacer esta examen."
|
4687 |
+
|
4688 |
+
#: inc/quiz/class-lp-quiz-factory.php:127
|
4689 |
+
msgid "You can not start a quiz in preview mode."
|
4690 |
+
msgstr "No puede iniciar un examen en modo de vista previa."
|
4691 |
+
|
4692 |
+
#: inc/quiz/class-lp-quiz-factory.php:162
|
4693 |
+
msgid "You have already completed quiz"
|
4694 |
+
msgstr "Has completado este examen"
|
4695 |
+
|
4696 |
+
#: inc/quiz/class-lp-quiz-factory.php:174
|
4697 |
+
msgid "Error while finish quiz"
|
4698 |
+
msgstr "Error durante el examen final"
|
4699 |
+
|
4700 |
+
#: inc/quiz/class-lp-quiz-factory.php:211
|
4701 |
+
msgid "You quiz has finished automatically"
|
4702 |
+
msgstr "Tu examen ha terminado automáticamente"
|
4703 |
+
|
4704 |
+
#: inc/quiz/class-lp-quiz-factory.php:213
|
4705 |
+
msgid "You have finished quiz"
|
4706 |
+
msgstr "Ya ha finalizado la prueba"
|
4707 |
+
|
4708 |
+
#: inc/quiz/class-lp-quiz-factory.php:216
|
4709 |
+
msgid "Finish quiz failed"
|
4710 |
+
msgstr "Falla al terminar el examen"
|
4711 |
+
|
4712 |
+
#: inc/quiz/class-lp-quiz-factory.php:234
|
4713 |
+
msgid "Sorry! You can't retake quiz"
|
4714 |
+
msgstr "¡Lo siento! No puedes volver a hacer el examen"
|
4715 |
+
|
4716 |
+
#: inc/quiz/class-lp-quiz-factory.php:249
|
4717 |
+
msgid "You have retaken quiz"
|
4718 |
+
msgstr "Has vuelto a hacer este examen"
|
4719 |
+
|
4720 |
+
#: inc/quiz/class-lp-quiz-factory.php:252
|
4721 |
+
msgid "Retake quiz failed"
|
4722 |
+
msgstr "Retomar prueba falló"
|
4723 |
+
|
4724 |
+
#: inc/quiz/class-lp-quiz-factory.php:356
|
4725 |
+
#, php-format
|
4726 |
+
msgid ""
|
4727 |
+
"Action %s failed! Please contact site's administrator for more information."
|
4728 |
+
msgstr ""
|
4729 |
+
"Acción%s falló! Por favor, ponte en contacto con el administrador del sitio "
|
4730 |
+
"para obtener más información."
|
4731 |
+
|
4732 |
+
#: inc/quiz/class-lp-quiz.php:94
|
4733 |
+
msgid "Unlimited"
|
4734 |
+
msgstr "Ilimitado"
|
4735 |
+
|
4736 |
+
#: inc/shortcodes/profile-page.php:21
|
4737 |
+
msgid "This user is not available!"
|
4738 |
+
msgstr "¡Este usuario no está disponible!"
|
4739 |
+
|
4740 |
+
#: inc/shortcodes/featured-courses/templates/cards.php:77
|
4741 |
+
#: inc/shortcodes/featured-courses/templates/grids.php:85
|
4742 |
+
#: inc/shortcodes/featured-courses/templates/list.php:89
|
4743 |
+
#: inc/shortcodes/popular-courses/templates/cards.php:77
|
4744 |
+
#: inc/shortcodes/popular-courses/templates/grids.php:85
|
4745 |
+
#: inc/shortcodes/popular-courses/templates/list.php:89
|
4746 |
+
#: inc/shortcodes/recent-courses/templates/cards.php:77
|
4747 |
+
#: inc/shortcodes/recent-courses/templates/grids.php:85
|
4748 |
+
#: inc/shortcodes/recent-courses/templates/list.php:88
|
4749 |
+
msgid " students"
|
4750 |
+
msgstr " estudiantes"
|
4751 |
+
|
4752 |
+
#: inc/shortcodes/featured-courses/templates/cards.php:79
|
4753 |
+
#: inc/shortcodes/featured-courses/templates/grids.php:87
|
4754 |
+
#: inc/shortcodes/featured-courses/templates/list.php:91
|
4755 |
+
#: inc/shortcodes/popular-courses/templates/cards.php:79
|
4756 |
+
#: inc/shortcodes/popular-courses/templates/grids.php:87
|
4757 |
+
#: inc/shortcodes/popular-courses/templates/list.php:91
|
4758 |
+
#: inc/shortcodes/recent-courses/templates/cards.php:79
|
4759 |
+
#: inc/shortcodes/recent-courses/templates/grids.php:87
|
4760 |
+
#: inc/shortcodes/recent-courses/templates/list.php:90
|
4761 |
+
msgid " student"
|
4762 |
+
msgstr " estudiante"
|
4763 |
+
|
4764 |
+
#: inc/shortcodes/featured-courses/templates/cards.php:92
|
4765 |
+
#: inc/shortcodes/featured-courses/templates/grids.php:100
|
4766 |
+
#: inc/shortcodes/featured-courses/templates/list.php:104
|
4767 |
+
#: inc/shortcodes/popular-courses/templates/cards.php:92
|
4768 |
+
#: inc/shortcodes/popular-courses/templates/grids.php:100
|
4769 |
+
#: inc/shortcodes/popular-courses/templates/list.php:104
|
4770 |
+
#: inc/shortcodes/recent-courses/templates/cards.php:92
|
4771 |
+
#: inc/shortcodes/recent-courses/templates/grids.php:100
|
4772 |
+
#: inc/shortcodes/recent-courses/templates/list.php:103
|
4773 |
+
msgid " lessons"
|
4774 |
+
msgstr " lecciones"
|
4775 |
+
|
4776 |
+
#: inc/shortcodes/featured-courses/templates/cards.php:94
|
4777 |
+
#: inc/shortcodes/featured-courses/templates/grids.php:102
|
4778 |
+
#: inc/shortcodes/featured-courses/templates/list.php:106
|
4779 |
+
#: inc/shortcodes/popular-courses/templates/cards.php:94
|
4780 |
+
#: inc/shortcodes/popular-courses/templates/grids.php:102
|
4781 |
+
#: inc/shortcodes/popular-courses/templates/list.php:106
|
4782 |
+
#: inc/shortcodes/recent-courses/templates/cards.php:94
|
4783 |
+
#: inc/shortcodes/recent-courses/templates/grids.php:102
|
4784 |
+
#: inc/shortcodes/recent-courses/templates/list.php:105
|
4785 |
+
msgid " lesson"
|
4786 |
+
msgstr " lección"
|
4787 |
+
|
4788 |
+
#: inc/shortcodes/featured-courses/templates/cards.php:105
|
4789 |
+
#: inc/shortcodes/featured-courses/templates/grids.php:113
|
4790 |
+
#: inc/shortcodes/featured-courses/templates/list.php:117
|
4791 |
+
#: inc/shortcodes/popular-courses/templates/cards.php:105
|
4792 |
+
#: inc/shortcodes/popular-courses/templates/grids.php:113
|
4793 |
+
#: inc/shortcodes/popular-courses/templates/list.php:117
|
4794 |
+
#: inc/shortcodes/recent-courses/templates/cards.php:105
|
4795 |
+
#: inc/shortcodes/recent-courses/templates/grids.php:113
|
4796 |
+
#: inc/shortcodes/recent-courses/templates/list.php:116
|
4797 |
+
msgid "instructor: "
|
4798 |
+
msgstr "Mentor: "
|
4799 |
+
|
4800 |
+
#: inc/updates/_update-from-0.9.php:1177
|
4801 |
+
msgctxt "Permalink Slug"
|
4802 |
+
msgid "lesson-tag"
|
4803 |
+
msgstr "etiqueta-leccion"
|
4804 |
+
|
4805 |
+
#: inc/updates/_update-from-0.9.php:1196
|
4806 |
+
msgctxt "Permalink Slug"
|
4807 |
+
msgid "question-tag"
|
4808 |
+
msgstr "etiqueta-pregunta"
|
4809 |
+
|
4810 |
+
#: inc/user/abstract-lp-user.php:227
|
4811 |
+
msgid "Create quiz history need pass course ID"
|
4812 |
+
msgstr "Crear la historia concurso necesario pasar Identificación curso"
|
4813 |
+
|
4814 |
+
#: inc/user/abstract-lp-user.php:1117 inc/user/abstract-lp-user.php:1417
|
4815 |
+
#: inc/user/abstract-lp-user.php:1429
|
4816 |
+
#, php-format
|
4817 |
+
msgid "The role %s for user doesn't exists"
|
4818 |
+
msgstr "El rol %s para el usuario no existe"
|
4819 |
+
|
4820 |
+
#: inc/user/abstract-lp-user.php:1821
|
4821 |
+
msgid "You have already completed this lesson"
|
4822 |
+
msgstr "Has completado esta lección."
|
4823 |
+
|
4824 |
+
#: inc/user/class-lp-user-factory.php:43
|
4825 |
+
msgid "Every 3 Minutes"
|
4826 |
+
msgstr "cada 3 minutos"
|
4827 |
+
|
4828 |
+
#: inc/user/lp-user-functions.php:87
|
4829 |
+
msgctxt "User role"
|
4830 |
+
msgid "Instructor"
|
4831 |
+
msgstr "Instructor"
|
4832 |
+
|
4833 |
+
#: inc/user/lp-user-functions.php:304
|
4834 |
+
msgid "Want to be an instructor?"
|
4835 |
+
msgstr "Quieres ser un mentor?"
|
4836 |
+
|
4837 |
+
#: inc/user/lp-user-functions.php:579
|
4838 |
+
msgid "Only"
|
4839 |
+
msgstr "Sólo"
|
4840 |
+
|
4841 |
+
#: inc/user/lp-user-functions.php:579
|
4842 |
+
msgid "images accepted for upload"
|
4843 |
+
msgstr "Esperando carga"
|
4844 |
+
|
4845 |
+
#: inc/user/lp-user-functions.php:588
|
4846 |
+
msgid "Images must be under"
|
4847 |
+
msgstr "Las imágenes deben estar bajo"
|
4848 |
+
|
4849 |
+
#: inc/user/lp-user-functions.php:588
|
4850 |
+
msgid "MB in size"
|
4851 |
+
msgstr "MB de tamaño"
|
4852 |
+
|
4853 |
+
#: inc/user/lp-user-functions.php:596
|
4854 |
+
msgid "Please select an image for upload"
|
4855 |
+
msgstr "Selecciona una imagen."
|
4856 |
+
|
4857 |
+
#: inc/user/lp-user-functions.php:625
|
4858 |
+
msgid "Image is uploaded success"
|
4859 |
+
msgstr "Imagen se carga el éxito"
|
4860 |
+
|
4861 |
+
#: inc/user/lp-user-functions.php:625
|
4862 |
+
msgid "Error on upload image"
|
4863 |
+
msgstr "Error de carga de imágenes en"
|
4864 |
+
|
4865 |
+
#: inc/user/lp-user-functions.php:651 inc/user/lp-user-functions.php:684
|
4866 |
+
#: inc/user/lp-user-functions.php:701 inc/user/lp-user-functions.php:709
|
4867 |
+
msgid "Thumbnail of image profile not created"
|
4868 |
+
msgstr "Miniatura de imagen no creó el perfil"
|
4869 |
+
|
4870 |
+
#: inc/user/lp-user-functions.php:669
|
4871 |
+
msgid "Error on crop user picture profile "
|
4872 |
+
msgstr "Error en la creación del usuario "
|
4873 |
+
|
4874 |
+
#: inc/user/lp-user-functions.php:723
|
4875 |
+
msgid "Profile picture is changed"
|
4876 |
+
msgstr "foto de perfil cambiada"
|
4877 |
+
|
4878 |
+
#: inc/user/lp-user-functions.php:770
|
4879 |
+
msgid "Old password incorrect!"
|
4880 |
+
msgstr "La contraseña anterior es incorrecta"
|
4881 |
+
|
4882 |
+
#: inc/user/lp-user-functions.php:784
|
4883 |
+
msgid "Confirmation password incorrect!"
|
4884 |
+
msgstr "Contraseña incorrecta"
|
4885 |
+
|
4886 |
+
#: inc/user/lp-user-functions.php:803
|
4887 |
+
msgid "Your change is saved"
|
4888 |
+
msgstr "El cambio se ha guardado"
|
4889 |
+
|
4890 |
+
#: inc/user/lp-user-functions.php:812
|
4891 |
+
msgid "Error on update your profile info"
|
4892 |
+
msgstr "Error en la actualización de su perfil info"
|
4893 |
+
|
4894 |
+
#: inc/user/lp-user-functions.php:928
|
4895 |
+
msgid "Please login to enroll this course"
|
4896 |
+
msgstr "Matricularse en este curso"
|
4897 |
+
|
4898 |
+
#: inc/user/lp-user-functions.php:946
|
4899 |
+
msgid "You have already finished course"
|
4900 |
+
msgstr "Ha finalizado este curso"
|
4901 |
+
|
4902 |
+
#: inc/user/lp-user-functions.php:949
|
4903 |
+
msgid "You have already enrolled in this course"
|
4904 |
+
msgstr "Ya te has inscrito en este curso"
|
4905 |
+
|
4906 |
+
#: inc/widgets/featured-courses/featured-course-widget.php:65
|
4907 |
+
msgid "Featured courses"
|
4908 |
+
msgstr "cursos destacados"
|
4909 |
+
|
4910 |
+
#: inc/widgets/featured-courses/featured-course-widget.php:76
|
4911 |
+
msgid "LearnPress - Featured Courses"
|
4912 |
+
msgstr "Cursos Destacados"
|
4913 |
+
|
4914 |
+
#: inc/widgets/featured-courses/form.php:8
|
4915 |
+
#: inc/widgets/popular-courses/form.php:8 inc/widgets/recent-courses/form.php:8
|
4916 |
+
msgid "Title:"
|
4917 |
+
msgstr "Titulo"
|
4918 |
+
|
4919 |
+
#: inc/widgets/featured-courses/form.php:17
|
4920 |
+
#: inc/widgets/popular-courses/form.php:17
|
4921 |
+
#: inc/widgets/recent-courses/form.php:17
|
4922 |
+
msgid "Number of posts:"
|
4923 |
+
msgstr "Número de publicaciones:"
|
4924 |
+
|
4925 |
+
#: inc/widgets/featured-courses/form.php:26
|
4926 |
+
#: inc/widgets/popular-courses/form.php:26
|
4927 |
+
#: inc/widgets/recent-courses/form.php:26
|
4928 |
+
msgid "CSS class:"
|
4929 |
+
msgstr ""
|
4930 |
+
|
4931 |
+
#: inc/widgets/featured-courses/form.php:35
|
4932 |
+
#: inc/widgets/popular-courses/form.php:35
|
4933 |
+
#: inc/widgets/recent-courses/form.php:35
|
4934 |
+
msgid "Choose template: "
|
4935 |
+
msgstr ""
|
4936 |
+
|
4937 |
+
#: inc/widgets/featured-courses/form.php:50
|
4938 |
+
#: inc/widgets/popular-courses/form.php:50
|
4939 |
+
#: inc/widgets/recent-courses/form.php:50
|
4940 |
+
msgid "Show description: "
|
4941 |
+
msgstr "Mostrar descripción: "
|
4942 |
+
|
4943 |
+
#: inc/widgets/featured-courses/form.php:58
|
4944 |
+
#: inc/widgets/popular-courses/form.php:58
|
4945 |
+
#: inc/widgets/recent-courses/form.php:58
|
4946 |
+
msgid "Description max length:"
|
4947 |
+
msgstr "Descripción longitud máxima:"
|
4948 |
+
|
4949 |
+
#: inc/widgets/featured-courses/form.php:67
|
4950 |
+
#: inc/widgets/popular-courses/form.php:67
|
4951 |
+
#: inc/widgets/recent-courses/form.php:67
|
4952 |
+
msgid "Show thumbnail: "
|
4953 |
+
msgstr "Mostrar Foto miniatura: "
|
4954 |
+
|
4955 |
+
#: inc/widgets/featured-courses/form.php:76
|
4956 |
+
#: inc/widgets/popular-courses/form.php:76
|
4957 |
+
#: inc/widgets/recent-courses/form.php:76
|
4958 |
+
msgid "Show Teacher name: "
|
4959 |
+
msgstr "Mostrar el nombre del profesor: "
|
4960 |
+
|
4961 |
+
#: inc/widgets/featured-courses/form.php:84
|
4962 |
+
#: inc/widgets/popular-courses/form.php:84
|
4963 |
+
#: inc/widgets/recent-courses/form.php:84
|
4964 |
+
msgid "Show number of lessons: "
|
4965 |
+
msgstr "Mostrar número de lecciones: "
|
4966 |
+
|
4967 |
+
#: inc/widgets/featured-courses/form.php:92
|
4968 |
+
#: inc/widgets/popular-courses/form.php:92
|
4969 |
+
#: inc/widgets/recent-courses/form.php:92
|
4970 |
+
msgid "Show enrolled number: "
|
4971 |
+
msgstr "Mostrar el número de inscritos: "
|
4972 |
+
|
4973 |
+
#: inc/widgets/featured-courses/form.php:100
|
4974 |
+
#: inc/widgets/popular-courses/form.php:100
|
4975 |
+
#: inc/widgets/recent-courses/form.php:100
|
4976 |
+
msgid "Show price: "
|
4977 |
+
msgstr "Mostrar precio: "
|
4978 |
+
|
4979 |
+
#: inc/widgets/featured-courses/form.php:110
|
4980 |
+
#: inc/widgets/popular-courses/form.php:110
|
4981 |
+
#: inc/widgets/recent-courses/form.php:110
|
4982 |
+
msgid "Bottom link: "
|
4983 |
+
msgstr ""
|
4984 |
+
|
4985 |
+
#: inc/widgets/featured-courses/form.php:116
|
4986 |
+
#: inc/widgets/popular-courses/form.php:116
|
4987 |
+
#: inc/widgets/recent-courses/form.php:116
|
4988 |
+
msgid "hide bottom link"
|
4989 |
+
msgstr ""
|
4990 |
+
|
4991 |
+
#: inc/widgets/featured-courses/form.php:119
|
4992 |
+
#: inc/widgets/popular-courses/form.php:119
|
4993 |
+
#: inc/widgets/recent-courses/form.php:119
|
4994 |
+
msgid "all courses"
|
4995 |
+
msgstr "todos los cursos"
|
4996 |
+
|
4997 |
+
#: inc/widgets/featured-courses/form.php:124
|
4998 |
+
#: inc/widgets/popular-courses/form.php:124
|
4999 |
+
#: inc/widgets/recent-courses/form.php:124
|
5000 |
+
msgid "Bottom link text: "
|
5001 |
+
msgstr "Boton de enlace inferior: "
|
5002 |
+
|
5003 |
+
#: inc/widgets/featured-courses/templates/default.php:26
|
5004 |
+
#: inc/widgets/popular-courses/templates/default.php:26
|
5005 |
+
#: inc/widgets/recent-courses/templates/default.php:26
|
5006 |
+
msgid "..."
|
5007 |
+
msgstr ""
|
5008 |
+
|
5009 |
+
#: inc/widgets/featured-courses/templates/default.php:42
|
5010 |
+
#: inc/widgets/popular-courses/templates/default.php:42
|
5011 |
+
#: inc/widgets/recent-courses/templates/default.php:42
|
5012 |
+
#, php-format
|
5013 |
+
msgid "%d students"
|
5014 |
+
msgstr "%d estudiantes"
|
5015 |
+
|
5016 |
+
#: inc/widgets/featured-courses/templates/default.php:42
|
5017 |
+
#: inc/widgets/popular-courses/templates/default.php:42
|
5018 |
+
#: inc/widgets/recent-courses/templates/default.php:42
|
5019 |
+
#, php-format
|
5020 |
+
msgid "%d student"
|
5021 |
+
msgstr "%d estudiante"
|
5022 |
+
|
5023 |
+
#: inc/widgets/featured-courses/templates/default.php:50
|
5024 |
+
#: inc/widgets/popular-courses/templates/default.php:50
|
5025 |
+
#: inc/widgets/recent-courses/templates/default.php:50
|
5026 |
+
#, php-format
|
5027 |
+
msgid "%d lessons"
|
5028 |
+
msgstr "%d lecciones"
|
5029 |
+
|
5030 |
+
#: inc/widgets/featured-courses/templates/default.php:50
|
5031 |
+
#: inc/widgets/popular-courses/templates/default.php:50
|
5032 |
+
#: inc/widgets/recent-courses/templates/default.php:50
|
5033 |
+
#, php-format
|
5034 |
+
msgid "%d lesson"
|
5035 |
+
msgstr "%d leccion"
|
5036 |
+
|
5037 |
+
#: inc/widgets/popular-courses/popular-course-widget.php:65
|
5038 |
+
msgid "Popular courses"
|
5039 |
+
msgstr "Cursos populares"
|
5040 |
+
|
5041 |
+
#: inc/widgets/popular-courses/popular-course-widget.php:76
|
5042 |
+
msgid "LearnPress - Popular Courses"
|
5043 |
+
msgstr "Cursos populares"
|
5044 |
+
|
5045 |
+
#: inc/widgets/recent-courses/recent-course-widget.php:47
|
5046 |
+
msgid "Display most recent courses"
|
5047 |
+
msgstr "Mostrar cursos más recientes"
|
5048 |
+
|
5049 |
+
#: inc/widgets/recent-courses/recent-course-widget.php:65
|
5050 |
+
msgid "Recent courses"
|
5051 |
+
msgstr "Cursos recientes"
|
5052 |
+
|
5053 |
+
#: inc/widgets/recent-courses/recent-course-widget.php:76
|
5054 |
+
msgid "LearnPress - Recent Courses"
|
5055 |
+
msgstr "Cursos recientes"
|
5056 |
+
|
5057 |
+
#: templates/content-archive-course.php:35
|
5058 |
+
msgid "No course found."
|
5059 |
+
msgstr "Curso no encontrado"
|
5060 |
+
|
5061 |
+
#: templates/search-form.php:18
|
5062 |
+
msgid "Search course..."
|
5063 |
+
msgstr "Buscar curso.."
|
5064 |
+
|
5065 |
+
#: templates/search-form.php:20
|
5066 |
+
msgid "Search"
|
5067 |
+
msgstr "Buscar"
|
5068 |
+
|
5069 |
+
#: templates/cart/empty-cart.php:12
|
5070 |
+
msgid "Your cart is currently empty."
|
5071 |
+
msgstr "Tu lista esta vacía."
|
5072 |
+
|
5073 |
+
#: templates/cart/form.php:70
|
5074 |
+
msgid "Remove this course"
|
5075 |
+
msgstr "Eliminar este curso"
|
5076 |
+
|
5077 |
+
#: templates/cart/form.php:96 templates/checkout/review-order.php:59
|
5078 |
+
#: templates/order/order-details.php:50
|
5079 |
+
msgid "Subtotal"
|
5080 |
+
msgstr ""
|
5081 |
+
|
5082 |
+
#: templates/checkout/form-logged-in.php:22
|
5083 |
+
#, php-format
|
5084 |
+
msgid "Logged in as <a href=\"%1$s\">%2$s</a>."
|
5085 |
+
msgstr "Conectado como <a href=\"%1$s\">%2$s</a>."
|
5086 |
+
|
5087 |
+
#: templates/checkout/form-logged-in.php:27
|
5088 |
+
msgid "Log out of this account"
|
5089 |
+
msgstr "Desconectarse"
|
5090 |
+
|
5091 |
+
#: templates/checkout/form-logged-in.php:27
|
5092 |
+
msgid "Log out »"
|
5093 |
+
msgstr "Salir »"
|
5094 |
+
|
5095 |
+
#: templates/checkout/form-login.php:18
|
5096 |
+
msgid "Returning customer"
|
5097 |
+
msgstr "Cliente recurrente"
|
5098 |
+
|
5099 |
+
#: templates/checkout/form-login.php:19
|
5100 |
+
msgid "I am a returning customer"
|
5101 |
+
msgstr "Soy un usuario ya registrado"
|
5102 |
+
|
5103 |
+
#: templates/checkout/form-login.php:48
|
5104 |
+
msgid "Login"
|
5105 |
+
msgstr "Iniciar sesión"
|
5106 |
+
|
5107 |
+
#: templates/checkout/form-register.php:18
|
5108 |
+
msgid "New Customer"
|
5109 |
+
msgstr "Nuevo Cliente"
|
5110 |
+
|
5111 |
+
#: templates/checkout/form-register.php:19
|
5112 |
+
msgid "Register Account"
|
5113 |
+
msgstr "Registrar Cuenta"
|
5114 |
+
|
5115 |
+
#: templates/checkout/form-register.php:21
|
5116 |
+
msgid "Continue"
|
5117 |
+
msgstr "Continuar"
|
5118 |
+
|
5119 |
+
#: templates/checkout/form-register.php:22
|
5120 |
+
#, php-format
|
5121 |
+
msgid ""
|
5122 |
+
"By creating an account you will be able to keep track of the course's "
|
5123 |
+
"progress you have previously enrolled.<a href=\"%s\">%s</a>"
|
5124 |
+
msgstr ""
|
5125 |
+
"Al crear una cuenta podrás realizar un seguimiento de progreso del curso al "
|
5126 |
+
"que te has inscrito previamente. <a href=\"%s\">%s</a>"
|
5127 |
+
|
5128 |
+
#: templates/checkout/order-comment.php:12
|
5129 |
+
msgid "Additional Information"
|
5130 |
+
msgstr "Información Adicional"
|
5131 |
+
|
5132 |
+
#: templates/checkout/order-received.php:16
|
5133 |
+
#: templates/checkout/order-received.php:52 templates/order/confirm.php:32
|
5134 |
+
#: templates/order/confirm.php:67
|
5135 |
+
msgid "Thank you. Your order has been received."
|
5136 |
+
msgstr "Gracias! Hemos recibido tu pedido"
|
5137 |
+
|
5138 |
+
#: templates/checkout/order-received.php:20
|
5139 |
+
msgid "Order Number"
|
5140 |
+
msgstr "Número de pedido"
|
5141 |
+
|
5142 |
+
#: templates/checkout/order-received.php:39 templates/checkout/payment.php:14
|
5143 |
+
msgid "Payment Method"
|
5144 |
+
msgstr "Método de Pago"
|
5145 |
+
|
5146 |
+
#: templates/checkout/payment.php:15
|
5147 |
+
msgid "Place order"
|
5148 |
+
msgstr "Realizar pedido"
|
5149 |
+
|
5150 |
+
#: templates/checkout/payment.php:26
|
5151 |
+
msgid "No payment methods is available."
|
5152 |
+
msgstr "Ningún método de pago esta disponible"
|
5153 |
+
|
5154 |
+
#: templates/checkout/review-order.php:14
|
5155 |
+
msgid "Your order"
|
5156 |
+
msgstr "Tu orden"
|
5157 |
+
|
5158 |
+
#: templates/content-lesson/description.php:25
|
5159 |
+
msgid "This lesson has no content"
|
5160 |
+
msgstr "Esta lección no tiene contenido"
|
5161 |
+
|
5162 |
+
#: templates/content-lesson/__complete-button.php:66
|
5163 |
+
#: templates/single-course/content-item-lp_lesson.php:33
|
5164 |
+
msgid "Complete"
|
5165 |
+
msgstr "Completo"
|
5166 |
+
|
5167 |
+
#: templates/content-lesson/__prev-button.php:11
|
5168 |
+
msgid "Prev"
|
5169 |
+
msgstr "Anterior"
|
5170 |
+
|
5171 |
+
#: templates/content-question/explanation.php:19
|
5172 |
+
msgid "Explanation:"
|
5173 |
+
msgstr "Explicación:"
|
5174 |
+
|
5175 |
+
#: templates/content-question/hint.php:31 templates/content-quiz/buttons.php:41
|
5176 |
+
msgid "Hint"
|
5177 |
+
msgstr "Pista"
|
5178 |
+
|
5179 |
+
#: templates/content-question/hint.php:32
|
5180 |
+
msgid "Hint:"
|
5181 |
+
msgstr "Consejo:"
|
5182 |
+
|
5183 |
+
#: templates/content-quiz/buttons.php:39
|
5184 |
+
msgid "Check"
|
5185 |
+
msgstr "Checar"
|
5186 |
+
|
5187 |
+
#: templates/content-quiz/buttons.php:53 templates/single-course/buttons.php:26
|
5188 |
+
msgid "Retake"
|
5189 |
+
msgstr "Retomar"
|
5190 |
+
|
5191 |
+
#: templates/content-quiz/buttons.php:63
|
5192 |
+
msgid "Start Quiz"
|
5193 |
+
msgstr "Comenzar Examen"
|
5194 |
+
|
5195 |
+
#: templates/content-quiz/buttons.php:73
|
5196 |
+
msgid "Finish Quiz"
|
5197 |
+
msgstr "Finalizar Examen"
|
5198 |
+
|
5199 |
+
#: templates/content-quiz/history.php:26
|
5200 |
+
#, php-format
|
5201 |
+
msgid "Other results (newest %d items)"
|
5202 |
+
msgstr "Otros resultados (%d elementos más actuales)"
|
5203 |
+
|
5204 |
+
#: templates/content-quiz/history.php:44
|
5205 |
+
msgid "Time"
|
5206 |
+
msgstr "Horario"
|
5207 |
+
|
5208 |
+
#: templates/content-quiz/history.php:45
|
5209 |
+
msgid "Result"
|
5210 |
+
msgstr "Resultado"
|
5211 |
+
|
5212 |
+
#: templates/content-quiz/history.php:70
|
5213 |
+
msgid "No history found!"
|
5214 |
+
msgstr "No hay historial"
|
5215 |
+
|
5216 |
+
#: templates/content-quiz/intro.php:26
|
5217 |
+
msgid "Attempts allowed:"
|
5218 |
+
msgstr "Intentos permitidos:"
|
5219 |
+
|
5220 |
+
#: templates/content-quiz/intro.php:30
|
5221 |
+
msgid "Duration:"
|
5222 |
+
msgstr "Duración:"
|
5223 |
+
|
5224 |
+
#: templates/content-quiz/intro.php:34
|
5225 |
+
msgid "Passing grade:"
|
5226 |
+
msgstr "Pasar grado"
|
5227 |
+
|
5228 |
+
#: templates/content-quiz/intro.php:38
|
5229 |
+
msgid "Questions:"
|
5230 |
+
msgstr "Preguntas:"
|
5231 |
+
|
5232 |
+
#: templates/content-quiz/preview-mode.php:15
|
5233 |
+
msgid "You are currently viewing quiz in preview mode."
|
5234 |
+
msgstr "Ahora mismo estás viendo el examen en el modo de vista previa"
|
5235 |
+
|
5236 |
+
#: templates/content-quiz/questions.php:20
|
5237 |
+
msgid "List of questions"
|
5238 |
+
msgstr "Lista de preguntas"
|
5239 |
+
|
5240 |
+
#: templates/content-quiz/questions.php:58
|
5241 |
+
msgid "This quiz hasn't got any questions"
|
5242 |
+
msgstr "Este examen no tiene preguntas."
|
5243 |
+
|
5244 |
+
#: templates/content-quiz/result.php:27
|
5245 |
+
#, php-format
|
5246 |
+
msgid "You have reached %d of %d points (%s)"
|
5247 |
+
msgstr "Has llegado a %d de %d puntos (%s)"
|
5248 |
+
|
5249 |
+
#: templates/content-quiz/result.php:30
|
5250 |
+
#, php-format
|
5251 |
+
msgid "Correct %d (%0.0f%%)"
|
5252 |
+
msgstr "Correcta %d (% 0.0f%%)"
|
5253 |
+
|
5254 |
+
#: templates/content-quiz/result.php:31
|
5255 |
+
#, php-format
|
5256 |
+
msgid "Wrong %d (%0.0f%%)"
|
5257 |
+
msgstr "Incorrecta %d (%0.0f%%)"
|
5258 |
+
|
5259 |
+
#: templates/content-quiz/result.php:32
|
5260 |
+
#, php-format
|
5261 |
+
msgid "Empty %d (%0.0f%%)"
|
5262 |
+
msgstr "Vacíos %d (%0.0f%%)"
|
5263 |
+
|
5264 |
+
#: templates/content-quiz/result.php:46
|
5265 |
+
#, php-format
|
5266 |
+
msgid "Your time: %s"
|
5267 |
+
msgstr "Tu tiempo: %s"
|
5268 |
+
|
5269 |
+
#: templates/content-quiz/result.php:51
|
5270 |
+
#, php-format
|
5271 |
+
msgid "Your quiz grade <span class=\"%s\">%s</span>"
|
5272 |
+
msgstr "Tu calificación <span class=\"%s\">%s</span>"
|
5273 |
+
|
5274 |
+
#: templates/content-quiz/result.php:53 templates/content-quiz/result.php:55
|
5275 |
+
#, php-format
|
5276 |
+
msgid "Quiz requirement <span>%s</span>"
|
5277 |
+
msgstr "Requisito de examen <span>%s</span>"
|
5278 |
+
|
5279 |
+
#: templates/emails/order-items-table.php:36
|
5280 |
+
#: templates/emails/plain/order-items-table.php:24
|
5281 |
+
#, php-format
|
5282 |
+
msgid "Quantity: %s"
|
5283 |
+
msgstr "Cantidad: %s"
|
5284 |
+
|
5285 |
+
#: templates/emails/order-items-table.php:39
|
5286 |
+
#: templates/emails/plain/order-items-table.php:26
|
5287 |
+
#, php-format
|
5288 |
+
msgid "Cost: %s"
|
5289 |
+
msgstr "Costo: %s"
|
5290 |
+
|
5291 |
+
#: templates/global/become-teacher-form.php:12
|
5292 |
+
msgid "Submitting..."
|
5293 |
+
msgstr "Enviando…"
|
5294 |
+
|
5295 |
+
#: templates/global/restrict-access.php:18
|
5296 |
+
msgid ""
|
5297 |
+
"You have no permission to view this area. Please contact site's "
|
5298 |
+
"administrators for more details."
|
5299 |
+
msgstr "Lo sentimos. No tienes permiso para ver esta página."
|
5300 |
+
|
5301 |
+
#: templates/order/confirm.php:14
|
5302 |
+
msgid ""
|
5303 |
+
"Unfortunately your order cannot be processed as the originating bank/"
|
5304 |
+
"merchant has declined your transaction."
|
5305 |
+
msgstr ""
|
5306 |
+
"Desgraciadamente, tu pedido no puede procesarse; el banco/comercio ha "
|
5307 |
+
"rechazado tu transacción. Por favor, intenta realizar la compra de nuevo."
|
5308 |
+
|
5309 |
+
#: templates/order/confirm.php:18
|
5310 |
+
msgid "Please attempt your purchase again or go to your account page."
|
5311 |
+
msgstr "Intente su compra de nuevo o vaya a la página de su cuenta."
|
5312 |
+
|
5313 |
+
#: templates/order/confirm.php:20
|
5314 |
+
msgid "Please attempt your purchase again."
|
5315 |
+
msgstr "Intente su compra de nuevo."
|
5316 |
+
|
5317 |
+
#: templates/order/confirm.php:24
|
5318 |
+
msgid "Pay"
|
5319 |
+
msgstr "Pagar"
|
5320 |
+
|
5321 |
+
#: templates/order/confirm.php:26
|
5322 |
+
msgid "My Account"
|
5323 |
+
msgstr "Mi cuenta"
|
5324 |
+
|
5325 |
+
#: templates/order/confirm.php:36
|
5326 |
+
msgid "Order Number:"
|
5327 |
+
msgstr "Número de pedido:"
|
5328 |
+
|
5329 |
+
#: templates/order/confirm.php:40
|
5330 |
+
msgid "Date:"
|
5331 |
+
msgstr "Fecha:"
|
5332 |
+
|
5333 |
+
#: templates/order/confirm.php:44
|
5334 |
+
msgid "Total:"
|
5335 |
+
msgstr "Total:"
|
5336 |
+
|
5337 |
+
#: templates/order/confirm.php:49
|
5338 |
+
msgid "Payment Method:"
|
5339 |
+
msgstr "Método de pago:"
|
5340 |
+
|
5341 |
+
#: templates/order/confirm.php:54
|
5342 |
+
msgid "Status:"
|
5343 |
+
msgstr "Estado:"
|
5344 |
+
|
5345 |
+
#: templates/order/order-details.php:37
|
5346 |
+
msgid "Free!"
|
5347 |
+
msgstr "Grátis!"
|
5348 |
+
|
5349 |
+
#: templates/profile/info.php:29
|
5350 |
+
msgid "Edit Profile"
|
5351 |
+
msgstr "Editar Perfil"
|
5352 |
+
|
5353 |
+
#: templates/profile/info.php:30
|
5354 |
+
msgid "Logout"
|
5355 |
+
msgstr "Cerrar Sesión"
|
5356 |
+
|
5357 |
+
#: templates/profile/order-details.php:13
|
5358 |
+
msgid "My Profile"
|
5359 |
+
msgstr "Mi Perfil"
|
5360 |
+
|
5361 |
+
#: templates/profile/private-area.php:8
|
5362 |
+
msgid "This is private area. Please login to view this."
|
5363 |
+
msgstr "Esta es zona privada. Por favor, regístrate para ver esto."
|
5364 |
+
|
5365 |
+
#: templates/profile/tabs/edit.php:31
|
5366 |
+
msgid "About Yourself"
|
5367 |
+
msgstr "Cuéntanos más sobre ti"
|
5368 |
+
|
5369 |
+
#: templates/profile/tabs/edit.php:33
|
5370 |
+
msgid "Profile Picture"
|
5371 |
+
msgstr "Foto de perfil"
|
5372 |
+
|
5373 |
+
#: templates/profile/tabs/edit.php:44
|
5374 |
+
msgid "Change Picture"
|
5375 |
+
msgstr "Cambiar imagen"
|
5376 |
+
|
5377 |
+
#: templates/profile/tabs/edit.php:46
|
5378 |
+
msgid "Gravatar"
|
5379 |
+
msgstr ""
|
5380 |
+
|
5381 |
+
#: templates/profile/tabs/edit.php:47
|
5382 |
+
msgid "Picture"
|
5383 |
+
msgstr "Imagen"
|
5384 |
+
|
5385 |
+
#: templates/profile/tabs/edit.php:51
|
5386 |
+
msgid "Use Gravatar"
|
5387 |
+
msgstr "Usar Gravatar"
|
5388 |
+
|
5389 |
+
#: templates/profile/tabs/edit.php:53
|
5390 |
+
msgid "Use Picture"
|
5391 |
+
msgstr "Imagen"
|
5392 |
+
|
5393 |
+
#: templates/profile/tabs/edit.php:55 templates/profile/tabs/edit.php:63
|
5394 |
+
msgid "Upload Picture"
|
5395 |
+
msgstr "Cargar imagen"
|
5396 |
+
|
5397 |
+
#: templates/profile/tabs/edit.php:64
|
5398 |
+
msgid ""
|
5399 |
+
"Please use an image that's at least 250px in width, 250px in height and "
|
5400 |
+
"under 2MB in size"
|
5401 |
+
msgstr "Utiliza una imagen de al menos 250px de ancho y 250px de alto."
|
5402 |
+
|
5403 |
+
#: templates/profile/tabs/edit.php:77
|
5404 |
+
msgid "Choose File"
|
5405 |
+
msgstr "Subir archivo"
|
5406 |
+
|
5407 |
+
#: templates/profile/tabs/edit.php:78
|
5408 |
+
msgid "Apply Changes"
|
5409 |
+
msgstr "Aplicar cambios"
|
5410 |
+
|
5411 |
+
#: templates/profile/tabs/edit.php:87
|
5412 |
+
msgid "Biographical Info"
|
5413 |
+
msgstr "Información Personal"
|
5414 |
+
|
5415 |
+
#: templates/profile/tabs/edit.php:89
|
5416 |
+
msgid ""
|
5417 |
+
"Share a little biographical information to fill out your profile. This may "
|
5418 |
+
"be shown publicly."
|
5419 |
+
msgstr ""
|
5420 |
+
"Comparte una breve información biográfica para llenar tu perfil. Esto puede "
|
5421 |
+
"ser mostrado públicamente."
|
5422 |
+
|
5423 |
+
#: templates/profile/tabs/edit.php:95
|
5424 |
+
msgid "First Name"
|
5425 |
+
msgstr "Nombre"
|
5426 |
+
|
5427 |
+
#: templates/profile/tabs/edit.php:100
|
5428 |
+
msgid "Last Name"
|
5429 |
+
msgstr "Apellidos"
|
5430 |
+
|
5431 |
+
#: templates/profile/tabs/edit.php:106
|
5432 |
+
msgid "(required)"
|
5433 |
+
msgstr "(requerido)"
|
5434 |
+
|
5435 |
+
#: templates/profile/tabs/edit.php:112
|
5436 |
+
msgid "Display name publicly as"
|
5437 |
+
msgstr "Mostrar nombre"
|
5438 |
+
|
5439 |
+
#: templates/profile/tabs/edit.php:147
|
5440 |
+
msgid "Account Management"
|
5441 |
+
msgstr "Gestión de Cuentas"
|
5442 |
+
|
5443 |
+
#: templates/profile/tabs/edit.php:149
|
5444 |
+
msgid "Change Password"
|
5445 |
+
msgstr "Cambiar Contraseña"
|
5446 |
+
|
5447 |
+
#: templates/profile/tabs/edit.php:153
|
5448 |
+
msgid "Old Password"
|
5449 |
+
msgstr "Contraseña Anterior"
|
5450 |
+
|
5451 |
+
#: templates/profile/tabs/edit.php:156
|
5452 |
+
msgid "New Password"
|
5453 |
+
msgstr "Nueva Contraseña"
|
5454 |
+
|
5455 |
+
#: templates/profile/tabs/edit.php:159
|
5456 |
+
msgid "Confirmation password"
|
5457 |
+
msgstr "Confirmación de contraseña"
|
5458 |
+
|
5459 |
+
#: templates/profile/tabs/edit.php:161
|
5460 |
+
msgid "Type your new password again."
|
5461 |
+
msgstr "Vuelve a escribir la contraseña."
|
5462 |
+
|
5463 |
+
#: templates/profile/tabs/edit.php:169
|
5464 |
+
msgid "Update Profile"
|
5465 |
+
msgstr "Actualizar perfil"
|
5466 |
+
|
5467 |
+
#: templates/profile/tabs/orders.php:19
|
5468 |
+
msgid "Action"
|
5469 |
+
msgstr "Acción"
|
5470 |
+
|
5471 |
+
#: templates/profile/tabs/orders.php:54
|
5472 |
+
msgid "You have not got any orders yet!"
|
5473 |
+
msgstr "No tienes ningún pedido todavía!"
|
5474 |
+
|
5475 |
+
#: templates/profile/tabs/quizzes.php:27
|
5476 |
+
msgid "You haven't started any quiz!"
|
5477 |
+
msgstr "No has iniciado ningún examen!"
|
5478 |
+
|
5479 |
+
#: templates/profile/tabs/courses/all.php:40
|
5480 |
+
msgid "You haven't got any courses yet!"
|
5481 |
+
msgstr "No tienes ningún curso publicado todavía!"
|
5482 |
+
|
5483 |
+
#: templates/profile/tabs/courses/finished.php:38
|
5484 |
+
msgid "You haven't finished any courses yet!"
|
5485 |
+
msgstr "No has terminado todavía ningún curso!"
|
5486 |
+
|
5487 |
+
#: templates/profile/tabs/courses/learning.php:38
|
5488 |
+
msgid "You haven't got any learning courses yet!"
|
5489 |
+
msgstr "No tienes ningún curso de aprendizaje todavía!"
|
5490 |
+
|
5491 |
+
#: templates/profile/tabs/courses/own.php:49
|
5492 |
+
msgid "You haven't got any published courses yet!"
|
5493 |
+
msgstr "No tienes ningún curso publicado todavía!"
|
5494 |
+
|
5495 |
+
#: templates/profile/tabs/courses/progress.php:41
|
5496 |
+
#: templates/single-course/progress.php:69
|
5497 |
+
#: templates/single-course/students-list.php:79
|
5498 |
+
#, php-format
|
5499 |
+
msgid "Passing condition: %s%%"
|
5500 |
+
msgstr "Valor para pasar: %s%%"
|
5501 |
+
|
5502 |
+
#: templates/profile/tabs/courses/purchased.php:38
|
5503 |
+
msgid "You haven't purchased any courses yet!"
|
5504 |
+
msgstr "No tienes ningún curso comprado todavía!"
|
5505 |
+
|
5506 |
+
#: templates/single-course/buttons.php:24
|
5507 |
+
msgid "Buy this course"
|
5508 |
+
msgstr "Tomar este Curso"
|
5509 |
+
|
5510 |
+
#: templates/single-course/buttons.php:25
|
5511 |
+
msgid "Enroll"
|
5512 |
+
msgstr "Inscribir"
|
5513 |
+
|
5514 |
+
#: templates/single-course/buttons.php:43
|
5515 |
+
#, php-format
|
5516 |
+
msgid "Retake course (+%d)"
|
5517 |
+
msgstr "Repetir curso (+%d)"
|
5518 |
+
|
5519 |
+
#: templates/single-course/buttons.php:98
|
5520 |
+
msgid "You have purchased this course. Please wait for approval."
|
5521 |
+
msgstr "Ya has comprado este curso. Por favor, espera la aprobación"
|
5522 |
+
|
5523 |
+
#: templates/single-course/buttons.php:100
|
5524 |
+
msgid "Sorry, you can not purchase this course"
|
5525 |
+
msgstr "¡Lo sentimos! No puedes inscribirte en este curso"
|
5526 |
+
|
5527 |
+
#: templates/single-course/content-item-lp_quiz.php:55
|
5528 |
+
msgid "No questions"
|
5529 |
+
msgstr "Sin preguntas."
|
5530 |
+
|
5531 |
+
#: templates/single-course/content-item-only.php:9
|
5532 |
+
#: templates/single-course/progress.php:35
|
5533 |
+
#, php-format
|
5534 |
+
msgid "%d of %d items"
|
5535 |
+
msgstr "%d de %d elementos"
|
5536 |
+
|
5537 |
+
#: templates/single-course/content-item.php:32
|
5538 |
+
msgid "Edit this item"
|
5539 |
+
msgstr "Editar este elemento"
|
5540 |
+
|
5541 |
+
#: templates/single-course/content-protected.php:14
|
5542 |
+
#, php-format
|
5543 |
+
msgid ""
|
5544 |
+
"This content is protected, please <a href=\"%s\">login</a> and enroll course "
|
5545 |
+
"to view this content"
|
5546 |
+
msgstr ""
|
5547 |
+
"Este contenido está protegido, por favor <a href=\"%s\">inicia sesión</a>e "
|
5548 |
+
"inscríbete en el curso para ver este contenido"
|
5549 |
+
|
5550 |
+
#: templates/single-course/curriculum.php:41
|
5551 |
+
#: templates/single-course/tabs/curriculum.php:41
|
5552 |
+
msgid "Curriculum is empty"
|
5553 |
+
msgstr "Curriculum está vacío"
|
5554 |
+
|
5555 |
+
#: templates/single-course/description.php:22
|
5556 |
+
msgid "Course Description"
|
5557 |
+
msgstr "Descripción del curso"
|
5558 |
+
|
5559 |
+
#: templates/single-course/instructor.php:20
|
5560 |
+
msgid "Instructor: "
|
5561 |
+
msgstr "Instructor: "
|
5562 |
+
|
5563 |
+
#: templates/single-course/progress.php:25
|
5564 |
+
msgid "Your results"
|
5565 |
+
msgstr "Tus resultados"
|
5566 |
+
|
5567 |
+
#: templates/single-course/progress.php:25
|
5568 |
+
msgid "Learning progress"
|
5569 |
+
msgstr "Progreso de aprendizaje"
|
5570 |
+
|
5571 |
+
#: templates/single-course/progress.php:33
|
5572 |
+
msgid "Items completed"
|
5573 |
+
msgstr "Artículos completados"
|
5574 |
+
|
5575 |
+
#: templates/single-course/progress.php:47
|
5576 |
+
msgid "Course results"
|
5577 |
+
msgstr "Resultados del curso"
|
5578 |
+
|
5579 |
+
#: templates/single-course/progress.php:50
|
5580 |
+
msgid "Evaluated by results of final quiz"
|
5581 |
+
msgstr "Evaluado por resultados de examen final"
|
5582 |
+
|
5583 |
+
#: templates/single-course/progress.php:52
|
5584 |
+
msgid "Evaluated by average results of quizzes"
|
5585 |
+
msgstr "Evaluados por el promedio de los examenes del curso"
|
5586 |
+
|
5587 |
+
#: templates/single-course/progress.php:54
|
5588 |
+
msgid "Evaluated by items completed"
|
5589 |
+
msgstr "Evaluado por elementos terminados"
|
5590 |
+
|
5591 |
+
#: templates/single-course/students-list.php:16
|
5592 |
+
msgid "Students Enrolled"
|
5593 |
+
msgstr "Estudiantes Inscritos"
|
5594 |
+
|
5595 |
+
#: templates/single-course/students-list.php:33
|
5596 |
+
msgid "Student filter"
|
5597 |
+
msgstr "filtro estudiante"
|
5598 |
+
|
5599 |
+
#: templates/single-course/students-list.php:92
|
5600 |
+
#, php-format
|
5601 |
+
msgid "one student enrolled."
|
5602 |
+
msgid_plural "%s students enrolled."
|
5603 |
+
msgstr[0] ""
|
5604 |
+
msgstr[1] "un estudiante inscrito."
|
5605 |
+
|
5606 |
+
#: templates/single-course/students-list.php:98
|
5607 |
+
#, php-format
|
5608 |
+
msgid "One student enrolled."
|
5609 |
+
msgid_plural "%s students enrolled."
|
5610 |
+
msgstr[0] ""
|
5611 |
+
msgstr[1] "Un estudiante"
|
5612 |
+
|
5613 |
+
#: templates/single-course/students-list.php:100
|
5614 |
+
msgid "No student enrolled."
|
5615 |
+
msgstr "Ningún estudiante inscrito."
|
5616 |
+
|
5617 |
+
#: templates/single-course/tags.php:16
|
5618 |
+
msgid "Tags: "
|
5619 |
+
msgstr "Etiquetas: "
|
5620 |
+
|
5621 |
+
#: templates/single-course/section/content.php:34
|
5622 |
+
msgid "No items in this section"
|
5623 |
+
msgstr "No hay elementos en esta sección"
|
5624 |
+
|
5625 |
+
#: templates/single-course/section/item-meta.php:21
|
5626 |
+
msgid "Viewing"
|
5627 |
+
msgstr "Viendo"
|
5628 |
+
|
5629 |
+
#: templates/single-course/section/item-meta.php:36
|
5630 |
+
msgid "Not Completed"
|
5631 |
+
msgstr "Sin completar"
|
5632 |
+
|
5633 |
+
#: templates/single-course/section/item-meta.php:38
|
5634 |
+
msgid "Not Started"
|
5635 |
+
msgstr "Sin Iniciar"
|
5636 |
+
|
5637 |
+
#: templates/single-course/section/title.php:26
|
5638 |
+
#, php-format
|
5639 |
+
msgid "%d/%d"
|
5640 |
+
msgstr ""
|
languages/learnpress.pot
CHANGED
@@ -7,7 +7,7 @@
|
|
7 |
#: inc/admin/views/meta-boxes/course/loop-item.php:48
|
8 |
#: inc/admin/views/meta-boxes/course/loop-item.php:49
|
9 |
#: inc/admin/views/meta-boxes/course/loop-section.php:37
|
10 |
-
#: inc/custom-post-types/course.php:
|
11 |
#: inc/custom-post-types/quiz.php:133 inc/custom-post-types/quiz.php:134
|
12 |
#: inc/question/class-lp-question-multi-choice.php:148
|
13 |
#, fuzzy
|
@@ -15,7 +15,7 @@ msgid ""
|
|
15 |
msgstr ""
|
16 |
"Project-Id-Version: PACKAGE VERSION\n"
|
17 |
"Report-Msgid-Bugs-To: \n"
|
18 |
-
"POT-Creation-Date: 2017-01-
|
19 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
20 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
21 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
@@ -112,6 +112,7 @@ msgstr ""
|
|
112 |
|
113 |
#: inc/class-lp-ajax.php:532 inc/admin/lp-admin-functions.php:930
|
114 |
#: inc/admin/views/statistics/orders.php:63
|
|
|
115 |
#: templates/single-course/content-item-lp_lesson.php:24
|
116 |
#: templates/single-course/section/item-meta.php:34
|
117 |
msgid "Completed"
|
@@ -258,10 +259,10 @@ msgstr ""
|
|
258 |
msgid "Ok"
|
259 |
msgstr ""
|
260 |
|
261 |
-
#: inc/class-lp-install.php:90 inc/lp-core-functions.php:
|
262 |
-
#: inc/admin/class-lp-admin-ajax.php:
|
263 |
#: inc/admin/views/meta-boxes/course/loop-section.php:48
|
264 |
-
#: inc/custom-post-types/course.php:
|
265 |
msgid "Cancel"
|
266 |
msgstr ""
|
267 |
|
@@ -292,76 +293,76 @@ msgstr ""
|
|
292 |
msgid "Add-ons"
|
293 |
msgstr ""
|
294 |
|
295 |
-
#: inc/class-lp-shortcodes.php:
|
296 |
msgid "Invalid order!"
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: inc/class-lp-shortcodes.php:
|
300 |
msgid "Please login to fill in this form."
|
301 |
msgstr ""
|
302 |
|
303 |
-
#: inc/class-lp-shortcodes.php:
|
304 |
msgid "You are a teacher now."
|
305 |
msgstr ""
|
306 |
|
307 |
-
#: inc/class-lp-shortcodes.php:
|
308 |
msgid "Your request has been sent! We will get in touch with you soon!"
|
309 |
msgstr ""
|
310 |
|
311 |
-
#: inc/class-lp-shortcodes.php:
|
312 |
msgid "Your role is allowed to create a course."
|
313 |
msgstr ""
|
314 |
|
315 |
-
#: inc/class-lp-shortcodes.php:
|
316 |
msgid "Become a Teacher"
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: inc/class-lp-shortcodes.php:
|
320 |
msgid "Fill in your information and send us to become a teacher."
|
321 |
msgstr ""
|
322 |
|
323 |
-
#: inc/class-lp-shortcodes.php:
|
324 |
msgid "Submit"
|
325 |
msgstr ""
|
326 |
|
327 |
-
#: inc/class-lp-shortcodes.php:
|
328 |
msgid "Processing"
|
329 |
msgstr ""
|
330 |
|
331 |
-
#: inc/class-lp-shortcodes.php:
|
332 |
msgid "Name"
|
333 |
msgstr ""
|
334 |
|
335 |
-
#: inc/class-lp-shortcodes.php:
|
336 |
msgid "Your name"
|
337 |
msgstr ""
|
338 |
|
339 |
-
#: inc/class-lp-shortcodes.php:
|
340 |
msgid "Email"
|
341 |
msgstr ""
|
342 |
|
343 |
-
#: inc/class-lp-shortcodes.php:
|
344 |
msgid "Your email address"
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: inc/class-lp-shortcodes.php:
|
348 |
msgid "Phone"
|
349 |
msgstr ""
|
350 |
|
351 |
-
#: inc/class-lp-shortcodes.php:
|
352 |
msgid "Your phone number"
|
353 |
msgstr ""
|
354 |
|
355 |
-
#: inc/class-lp-shortcodes.php:
|
356 |
#, php-format
|
357 |
msgid "The user %s is not available!"
|
358 |
msgstr ""
|
359 |
|
360 |
-
#: inc/class-lp-shortcodes.php:
|
361 |
msgid "Forgot password?"
|
362 |
msgstr ""
|
363 |
|
364 |
-
#: inc/class-lp-shortcodes.php:
|
365 |
msgid "Create new account"
|
366 |
msgstr ""
|
367 |
|
@@ -380,8 +381,8 @@ msgstr ""
|
|
380 |
msgid "Related Themes <span class=\"count\">(%s)</span>"
|
381 |
msgstr ""
|
382 |
|
383 |
-
#: inc/lp-add-on-functions.php:118 inc/lp-core-functions.php:
|
384 |
-
#: inc/lp-core-functions.php:
|
385 |
#: inc/admin/lp-admin-functions.php:558 inc/admin/lp-admin-functions.php:723
|
386 |
#: inc/admin/lp-admin-functions.php:925 inc/admin/sub-menus/tools.php:321
|
387 |
#: inc/admin/views/statistics/courses.php:27
|
@@ -591,12 +592,12 @@ msgid " sales"
|
|
591 |
msgstr ""
|
592 |
|
593 |
#: inc/lp-add-on-functions.php:996 inc/lp-add-on-functions.php:1063
|
594 |
-
#: inc/lp-core-functions.php:
|
595 |
msgid "Get it now"
|
596 |
msgstr ""
|
597 |
|
598 |
#: inc/lp-add-on-functions.php:997 inc/lp-add-on-functions.php:1064
|
599 |
-
#: inc/lp-core-functions.php:
|
600 |
msgid "View Demo"
|
601 |
msgstr ""
|
602 |
|
@@ -604,232 +605,234 @@ msgstr ""
|
|
604 |
msgid "Other"
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: inc/lp-core-functions.php:234 inc/lp-template-functions.php:
|
608 |
-
#: inc/
|
|
|
609 |
msgid "Lesson"
|
610 |
msgstr ""
|
611 |
|
612 |
-
#: inc/lp-core-functions.php:235 inc/lp-template-functions.php:
|
|
|
613 |
#: inc/admin/settings/class-lp-settings-pages.php:22
|
614 |
-
#: inc/course/lp-course-functions.php:
|
615 |
#: inc/custom-post-types/question.php:244 inc/custom-post-types/quiz.php:91
|
616 |
msgid "Quiz"
|
617 |
msgstr ""
|
618 |
|
619 |
-
#: inc/lp-core-functions.php:
|
620 |
msgid "<"
|
621 |
msgstr ""
|
622 |
|
623 |
-
#: inc/lp-core-functions.php:
|
624 |
msgid ">"
|
625 |
msgstr ""
|
626 |
|
627 |
-
#: inc/lp-core-functions.php:
|
628 |
msgid "Minute(s)"
|
629 |
msgstr ""
|
630 |
|
631 |
-
#: inc/lp-core-functions.php:
|
632 |
msgid "Hour(s)"
|
633 |
msgstr ""
|
634 |
|
635 |
-
#: inc/lp-core-functions.php:
|
636 |
msgid "Day(s)"
|
637 |
msgstr ""
|
638 |
|
639 |
-
#: inc/lp-core-functions.php:
|
640 |
msgid "Week(s)"
|
641 |
msgstr ""
|
642 |
|
643 |
-
#: inc/lp-core-functions.php:
|
644 |
#: inc/admin/class-lp-profile.php:77 inc/admin/lp-admin-functions.php:299
|
645 |
#: inc/admin/settings/class-lp-settings-courses.php:9
|
646 |
#: inc/admin/settings/class-lp-settings-pages.php:105
|
647 |
#: inc/admin/sub-menus/statistics.php:50 inc/admin/sub-menus/statistics.php:56
|
648 |
-
#: inc/custom-post-types/course.php:
|
649 |
msgid "Courses"
|
650 |
msgstr ""
|
651 |
|
652 |
-
#: inc/lp-core-functions.php:
|
653 |
msgid "Categories"
|
654 |
msgstr ""
|
655 |
|
656 |
-
#: inc/lp-core-functions.php:
|
657 |
msgid "Tags"
|
658 |
msgstr ""
|
659 |
|
660 |
-
#: inc/lp-core-functions.php:
|
661 |
msgid "Left"
|
662 |
msgstr ""
|
663 |
|
664 |
-
#: inc/lp-core-functions.php:
|
665 |
msgid "Right"
|
666 |
msgstr ""
|
667 |
|
668 |
-
#: inc/lp-core-functions.php:
|
669 |
msgid "Left with space"
|
670 |
msgstr ""
|
671 |
|
672 |
-
#: inc/lp-core-functions.php:
|
673 |
msgid "Right with space"
|
674 |
msgstr ""
|
675 |
|
676 |
-
#: inc/lp-core-functions.php:
|
677 |
msgid "week(s)"
|
678 |
msgstr ""
|
679 |
|
680 |
-
#: inc/lp-core-functions.php:
|
681 |
msgid "day(s)"
|
682 |
msgstr ""
|
683 |
|
684 |
-
#: inc/lp-core-functions.php:
|
685 |
msgid "hour(s)"
|
686 |
msgstr ""
|
687 |
|
688 |
-
#: inc/lp-core-functions.php:
|
689 |
msgid "min(s)"
|
690 |
msgstr ""
|
691 |
|
692 |
-
#: inc/lp-core-functions.php:
|
693 |
msgid "Please enter your name"
|
694 |
msgstr ""
|
695 |
|
696 |
-
#: inc/lp-core-functions.php:
|
697 |
msgid "Please enter your email address"
|
698 |
msgstr ""
|
699 |
|
700 |
-
#: inc/lp-core-functions.php:
|
701 |
msgid "Please moderate"
|
702 |
msgstr ""
|
703 |
|
704 |
-
#: inc/lp-core-functions.php:
|
705 |
#, php-format
|
706 |
msgid "The user <a href=\"%s\">%s</a> wants to be a teacher."
|
707 |
msgstr ""
|
708 |
|
709 |
-
#: inc/lp-core-functions.php:
|
710 |
#, php-format
|
711 |
msgid "Name: %s"
|
712 |
msgstr ""
|
713 |
|
714 |
-
#: inc/lp-core-functions.php:
|
715 |
#, php-format
|
716 |
msgid "Email: %s"
|
717 |
msgstr ""
|
718 |
|
719 |
-
#: inc/lp-core-functions.php:
|
720 |
#, php-format
|
721 |
msgid "Phone: %s"
|
722 |
msgstr ""
|
723 |
|
724 |
-
#: inc/lp-core-functions.php:
|
725 |
#, php-format
|
726 |
msgid "Accept: %s"
|
727 |
msgstr ""
|
728 |
|
729 |
-
#: inc/lp-core-functions.php:
|
730 |
msgid "OK"
|
731 |
msgstr ""
|
732 |
|
733 |
-
#: inc/lp-core-functions.php:
|
734 |
#: inc/custom-post-types/quiz.php:223 inc/custom-post-types/quiz.php:234
|
735 |
msgid "Yes"
|
736 |
msgstr ""
|
737 |
|
738 |
-
#: inc/lp-core-functions.php:
|
739 |
#: inc/custom-post-types/quiz.php:179 inc/custom-post-types/quiz.php:222
|
740 |
#: inc/custom-post-types/quiz.php:233
|
741 |
msgid "No"
|
742 |
msgstr ""
|
743 |
|
744 |
-
#: inc/lp-core-functions.php:
|
745 |
msgid "Learning"
|
746 |
msgstr ""
|
747 |
|
748 |
-
#: inc/lp-core-functions.php:
|
749 |
msgid "Purchased"
|
750 |
msgstr ""
|
751 |
|
752 |
-
#: inc/lp-core-functions.php:
|
753 |
msgid "Finished"
|
754 |
msgstr ""
|
755 |
|
756 |
-
#: inc/lp-core-functions.php:
|
757 |
msgid "Own"
|
758 |
msgstr ""
|
759 |
|
760 |
-
#: inc/lp-core-functions.php:
|
761 |
#, php-format
|
762 |
msgid "Congrats! You've enrolled course \"%s\"."
|
763 |
msgstr ""
|
764 |
|
765 |
-
#: inc/lp-core-functions.php:
|
766 |
msgid "Cart"
|
767 |
msgstr ""
|
768 |
|
769 |
-
#: inc/lp-core-functions.php:
|
770 |
msgid "Enable cart"
|
771 |
msgstr ""
|
772 |
|
773 |
-
#: inc/lp-core-functions.php:
|
774 |
msgid "Check this option to enable user purchase multiple courses at one time."
|
775 |
msgstr ""
|
776 |
|
777 |
-
#: inc/lp-core-functions.php:
|
778 |
msgid "Add to cart redirect"
|
779 |
msgstr ""
|
780 |
|
781 |
-
#: inc/lp-core-functions.php:
|
782 |
msgid "Redirect to checkout immediately after adding course to cart."
|
783 |
msgstr ""
|
784 |
|
785 |
-
#: inc/lp-core-functions.php:
|
786 |
msgid "AJAX add to cart"
|
787 |
msgstr ""
|
788 |
|
789 |
-
#: inc/lp-core-functions.php:
|
790 |
msgid "Using AJAX to add course to cart."
|
791 |
msgstr ""
|
792 |
|
793 |
-
#: inc/lp-core-functions.php:
|
794 |
msgid "Cart page"
|
795 |
msgstr ""
|
796 |
|
797 |
-
#: inc/lp-core-functions.php:
|
798 |
msgid "Are you sure you want to cancel order?"
|
799 |
msgstr ""
|
800 |
|
801 |
-
#: inc/lp-core-functions.php:
|
802 |
msgid "Cancel Order"
|
803 |
msgstr ""
|
804 |
|
805 |
-
#: inc/lp-core-functions.php:
|
806 |
msgid "Unknown error!"
|
807 |
msgstr ""
|
808 |
|
809 |
-
#: inc/lp-core-functions.php:
|
810 |
msgid "Invalid field!"
|
811 |
msgstr ""
|
812 |
|
813 |
-
#: inc/lp-core-functions.php:
|
814 |
#, php-format
|
815 |
msgid "Order number <strong>%s</strong> not found"
|
816 |
msgstr ""
|
817 |
|
818 |
-
#: inc/lp-core-functions.php:
|
819 |
msgid "Order cancelled by customer"
|
820 |
msgstr ""
|
821 |
|
822 |
-
#: inc/lp-core-functions.php:
|
823 |
#, php-format
|
824 |
msgid "Order number <strong>%s</strong> has been cancelled"
|
825 |
msgstr ""
|
826 |
|
827 |
-
#: inc/lp-core-functions.php:
|
828 |
#, php-format
|
829 |
msgid "Order number <strong>%s</strong> can not cancelled"
|
830 |
msgstr ""
|
831 |
|
832 |
-
#: inc/lp-core-functions.php:
|
833 |
msgid "In Progress"
|
834 |
msgstr ""
|
835 |
|
@@ -861,7 +864,7 @@ msgid "Edit"
|
|
861 |
msgstr ""
|
862 |
|
863 |
#: inc/lp-template-functions.php:1059
|
864 |
-
#: inc/admin/settings/class-lp-settings-checkout.php:
|
865 |
msgid "Order received"
|
866 |
msgstr ""
|
867 |
|
@@ -880,28 +883,33 @@ msgstr ""
|
|
880 |
msgid " – Page %s"
|
881 |
msgstr ""
|
882 |
|
883 |
-
#: inc/lp-template-functions.php:
|
884 |
msgid "Final"
|
885 |
msgstr ""
|
886 |
|
887 |
-
#: inc/lp-template-functions.php:
|
888 |
#: inc/custom-post-types/lesson.php:211
|
889 |
#: inc/libraries/meta-box/inc/fields/oembed.php:70
|
890 |
#: templates/single-course/section/item-meta.php:23
|
891 |
msgid "Preview"
|
892 |
msgstr ""
|
893 |
|
894 |
-
#: inc/lp-template-functions.php:
|
895 |
msgid "Overview"
|
896 |
msgstr ""
|
897 |
|
898 |
-
#: inc/lp-template-functions.php:
|
899 |
#: inc/admin/views/meta-boxes/course/curriculum.php:8
|
900 |
-
#: inc/custom-post-types/course.php:
|
901 |
msgid "Curriculum"
|
902 |
msgstr ""
|
903 |
|
904 |
-
#: inc/lp-webhooks.php:
|
|
|
|
|
|
|
|
|
|
|
905 |
msgid "LearnPress webhook process Complete"
|
906 |
msgstr ""
|
907 |
|
@@ -928,7 +936,7 @@ msgstr ""
|
|
928 |
#: inc/quiz/class-lp-quiz-factory.php:127
|
929 |
#: inc/quiz/class-lp-quiz-factory.php:162
|
930 |
#: inc/quiz/class-lp-quiz-factory.php:174
|
931 |
-
#: inc/quiz/class-lp-quiz-factory.php:
|
932 |
msgid "Error"
|
933 |
msgstr ""
|
934 |
|
@@ -977,12 +985,12 @@ msgstr ""
|
|
977 |
msgid "Verify nonce failed"
|
978 |
msgstr ""
|
979 |
|
980 |
-
#: inc/admin/class-lp-admin-ajax.php:745 inc/admin/class-lp-admin-ajax.php:
|
981 |
#: inc/admin/lp-admin-functions.php:132
|
982 |
msgid "Edit Page"
|
983 |
msgstr ""
|
984 |
|
985 |
-
#: inc/admin/class-lp-admin-ajax.php:746 inc/admin/class-lp-admin-ajax.php:
|
986 |
#: inc/admin/lp-admin-functions.php:133
|
987 |
msgid "View Page"
|
988 |
msgstr ""
|
@@ -995,41 +1003,41 @@ msgstr ""
|
|
995 |
msgid "Empty page name!"
|
996 |
msgstr ""
|
997 |
|
998 |
-
#: inc/admin/class-lp-admin-ajax.php:
|
999 |
msgid ""
|
1000 |
"Something went wrong! Please try again or ask <a href=\"https://wordpress."
|
1001 |
"org/support/\">support forums</a>."
|
1002 |
msgstr ""
|
1003 |
|
1004 |
-
#: inc/admin/class-lp-admin-ajax.php:
|
1005 |
msgid "Try again!"
|
1006 |
msgstr ""
|
1007 |
|
1008 |
-
#: inc/admin/class-lp-admin-ajax.php:
|
1009 |
msgid "Import sample data successes."
|
1010 |
msgstr ""
|
1011 |
|
1012 |
-
#: inc/admin/class-lp-admin-ajax.php:
|
1013 |
msgid "View courses"
|
1014 |
msgstr ""
|
1015 |
|
1016 |
-
#: inc/admin/class-lp-admin-ajax.php:
|
1017 |
msgid "Import sample data failed. Please try again!."
|
1018 |
msgstr ""
|
1019 |
|
1020 |
-
#: inc/admin/class-lp-admin-ajax.php:
|
1021 |
msgid ""
|
1022 |
"Unknown error when installing/activating Import/Export addon. Please try "
|
1023 |
"again!"
|
1024 |
msgstr ""
|
1025 |
|
1026 |
-
#: inc/admin/class-lp-admin-ajax.php:
|
1027 |
-
#: inc/admin/class-lp-admin-ajax.php:
|
1028 |
msgid ""
|
1029 |
"You do not have sufficient permissions to deactivate plugins for this site."
|
1030 |
msgstr ""
|
1031 |
|
1032 |
-
#: inc/admin/class-lp-admin-ajax.php:
|
1033 |
msgid " course has duplicated"
|
1034 |
msgstr ""
|
1035 |
|
@@ -1360,7 +1368,7 @@ msgstr ""
|
|
1360 |
#: inc/admin/views/statistics/orders.php:8
|
1361 |
#: inc/admin/views/statistics/users.php:8
|
1362 |
#: inc/admin/views/statistics/users.php:44
|
1363 |
-
#: inc/custom-post-types/course.php:
|
1364 |
msgid "Students"
|
1365 |
msgstr ""
|
1366 |
|
@@ -1383,7 +1391,7 @@ msgstr ""
|
|
1383 |
|
1384 |
#: inc/admin/lp-admin-functions.php:743
|
1385 |
#: inc/admin/views/statistics/courses.php:46
|
1386 |
-
#: inc/course/abstract-lp-course.php:563 inc/custom-post-types/course.php:
|
1387 |
#: inc/order/lp-order-functions.php:511
|
1388 |
#: inc/shortcodes/featured-courses/templates/cards.php:61
|
1389 |
#: inc/shortcodes/featured-courses/templates/grids.php:69
|
@@ -1541,23 +1549,19 @@ msgstr ""
|
|
1541 |
msgid "Current Version"
|
1542 |
msgstr ""
|
1543 |
|
1544 |
-
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:
|
1545 |
msgid "Total Raised"
|
1546 |
msgstr ""
|
1547 |
|
1548 |
-
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:
|
1549 |
-
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:
|
1550 |
#, php-format
|
1551 |
msgid "%d order"
|
1552 |
msgid_plural "%d orders"
|
1553 |
msgstr[0] ""
|
1554 |
msgstr[1] ""
|
1555 |
|
1556 |
-
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:
|
1557 |
-
msgid "Featured: "
|
1558 |
-
msgstr ""
|
1559 |
-
|
1560 |
-
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:52
|
1561 |
msgid "Created by: "
|
1562 |
msgstr ""
|
1563 |
|
@@ -1655,7 +1659,7 @@ msgstr ""
|
|
1655 |
msgid "Can not create a question"
|
1656 |
msgstr ""
|
1657 |
|
1658 |
-
#: inc/admin/pointers/pointers.php:66 inc/custom-post-types/course.php:
|
1659 |
#: templates/single-course/curriculum.php:16
|
1660 |
msgid "Course Curriculum"
|
1661 |
msgstr ""
|
@@ -1667,33 +1671,23 @@ msgid ""
|
|
1667 |
msgstr ""
|
1668 |
|
1669 |
#: inc/admin/settings/class-lp-settings-checkout.php:52
|
1670 |
-
msgid "
|
1671 |
msgstr ""
|
1672 |
|
1673 |
#: inc/admin/settings/class-lp-settings-checkout.php:53
|
1674 |
-
msgid ""
|
1675 |
-
"Check this option to allow user to enroll course immediately without adding "
|
1676 |
-
"to cart."
|
1677 |
msgstr ""
|
1678 |
|
1679 |
#: inc/admin/settings/class-lp-settings-checkout.php:59
|
1680 |
-
msgid "Disable auto enroll"
|
1681 |
-
msgstr ""
|
1682 |
-
|
1683 |
-
#: inc/admin/settings/class-lp-settings-checkout.php:60
|
1684 |
-
msgid "Disable auto enroll a user after they buy a course."
|
1685 |
-
msgstr ""
|
1686 |
-
|
1687 |
-
#: inc/admin/settings/class-lp-settings-checkout.php:66
|
1688 |
msgid "Checkout page"
|
1689 |
msgstr ""
|
1690 |
|
1691 |
-
#: inc/admin/settings/class-lp-settings-checkout.php:
|
1692 |
msgid "Checkout Endpoints"
|
1693 |
msgstr ""
|
1694 |
|
1695 |
#: inc/admin/settings/class-lp-settings-courses.php:32
|
1696 |
-
#: inc/custom-post-types/course.php:
|
1697 |
msgctxt "slug"
|
1698 |
msgid "courses"
|
1699 |
msgstr ""
|
@@ -1781,6 +1775,10 @@ msgstr ""
|
|
1781 |
msgid "Single course permalink"
|
1782 |
msgstr ""
|
1783 |
|
|
|
|
|
|
|
|
|
1784 |
#: inc/admin/settings/class-lp-settings-emails.php:39
|
1785 |
msgid "General options"
|
1786 |
msgstr ""
|
@@ -1799,50 +1797,38 @@ msgid "Create option for instructors registration."
|
|
1799 |
msgstr ""
|
1800 |
|
1801 |
#: inc/admin/settings/class-lp-settings-general.php:39
|
1802 |
-
msgid "Auto update post name"
|
1803 |
-
msgstr ""
|
1804 |
-
|
1805 |
-
#: inc/admin/settings/class-lp-settings-general.php:40
|
1806 |
-
msgid ""
|
1807 |
-
"The post's name will update along with the title when changes title of "
|
1808 |
-
"lesson or quiz in course curriculum or question in quiz<br />The permalink "
|
1809 |
-
"also is changed, therefore uncheck this if you don't want to change the "
|
1810 |
-
"permalink"
|
1811 |
-
msgstr ""
|
1812 |
-
|
1813 |
-
#: inc/admin/settings/class-lp-settings-general.php:46
|
1814 |
msgid "Currency"
|
1815 |
msgstr ""
|
1816 |
|
1817 |
-
#: inc/admin/settings/class-lp-settings-general.php:
|
1818 |
msgid "Currency position"
|
1819 |
msgstr ""
|
1820 |
|
1821 |
-
#: inc/admin/settings/class-lp-settings-general.php:
|
1822 |
msgid "Thousands Separator"
|
1823 |
msgstr ""
|
1824 |
|
1825 |
-
#: inc/admin/settings/class-lp-settings-general.php:
|
1826 |
msgid "Decimals Separator"
|
1827 |
msgstr ""
|
1828 |
|
1829 |
-
#: inc/admin/settings/class-lp-settings-general.php:
|
1830 |
msgid "Number of Decimals"
|
1831 |
msgstr ""
|
1832 |
|
1833 |
-
#: inc/admin/settings/class-lp-settings-general.php:
|
1834 |
msgid "Load css"
|
1835 |
msgstr ""
|
1836 |
|
1837 |
-
#: inc/admin/settings/class-lp-settings-general.php:
|
1838 |
msgid "Load default stylesheet for LearnPress"
|
1839 |
msgstr ""
|
1840 |
|
1841 |
-
#: inc/admin/settings/class-lp-settings-general.php:
|
1842 |
msgid "Debug mode"
|
1843 |
msgstr ""
|
1844 |
|
1845 |
-
#: inc/admin/settings/class-lp-settings-general.php:
|
1846 |
msgid "Turn on/off debug mode for developer"
|
1847 |
msgstr ""
|
1848 |
|
@@ -1944,10 +1930,6 @@ msgstr ""
|
|
1944 |
msgid "Ratio"
|
1945 |
msgstr ""
|
1946 |
|
1947 |
-
#: inc/admin/settings/class-lp-settings-pages.php:147
|
1948 |
-
msgid "Crop"
|
1949 |
-
msgstr ""
|
1950 |
-
|
1951 |
#: inc/admin/settings/class-lp-settings-pages.php:154
|
1952 |
msgid "Endpoints"
|
1953 |
msgstr ""
|
@@ -2095,7 +2077,7 @@ msgstr ""
|
|
2095 |
#: inc/admin/views/meta-boxes/quiz/question.php:36
|
2096 |
#: inc/libraries/meta-box/inc/fields/file-input.php:38
|
2097 |
#: inc/question/abstract-lp-question.php:653 templates/cart/form.php:72
|
2098 |
-
#: templates/profile/tabs/edit/avatar.php:
|
2099 |
msgid "Remove"
|
2100 |
msgstr ""
|
2101 |
|
@@ -2268,7 +2250,7 @@ msgid "Title"
|
|
2268 |
msgstr ""
|
2269 |
|
2270 |
#: inc/admin/views/meta-boxes/course/editor.php:62
|
2271 |
-
#: inc/custom-post-types/course.php:
|
2272 |
msgid "Content"
|
2273 |
msgstr ""
|
2274 |
|
@@ -2287,7 +2269,7 @@ msgstr ""
|
|
2287 |
#: inc/admin/views/meta-boxes/course/loop-section.php:71
|
2288 |
#: inc/admin/views/meta-boxes/quiz/js-template.php:6
|
2289 |
#: inc/admin/views/meta-boxes/quiz/questions.php:36
|
2290 |
-
#: inc/custom-post-types/course.php:
|
2291 |
#: inc/custom-post-types/order.php:419 inc/custom-post-types/question.php:100
|
2292 |
msgid "Add New"
|
2293 |
msgstr ""
|
@@ -2318,7 +2300,7 @@ msgid "Add new item here and press Enter"
|
|
2318 |
msgstr ""
|
2319 |
|
2320 |
#: inc/admin/views/meta-boxes/course/loop-item.php:49
|
2321 |
-
#: inc/custom-post-types/course.php:
|
2322 |
msgid "Are you sure you want to remove this item?"
|
2323 |
msgstr ""
|
2324 |
|
@@ -2375,7 +2357,7 @@ msgid "Select Quizzes"
|
|
2375 |
msgstr ""
|
2376 |
|
2377 |
#: inc/admin/views/meta-boxes/course/review-log.php:25
|
2378 |
-
#: inc/custom-post-types/course.php:
|
2379 |
msgid "Your course is pending for reviewing"
|
2380 |
msgstr ""
|
2381 |
|
@@ -2777,20 +2759,19 @@ msgstr ""
|
|
2777 |
msgid "Plain text template"
|
2778 |
msgstr ""
|
2779 |
|
2780 |
-
#: inc/admin/views/settings/emails/email-template.php:
|
2781 |
-
#: inc/admin/views/settings/emails/_email-template.php:28
|
2782 |
#, php-format
|
2783 |
msgid ""
|
2784 |
"This template has been overridden by your theme and can be found in: <code>"
|
2785 |
-
"%s</code>. Please open the file in an editor program to edit"
|
2786 |
msgstr ""
|
2787 |
|
2788 |
-
#: inc/admin/views/settings/emails/email-template.php:
|
2789 |
msgid "Click on variables to add it into email content"
|
2790 |
msgstr ""
|
2791 |
|
2792 |
-
#: inc/admin/views/settings/emails/email-template.php:
|
2793 |
-
#: inc/admin/views/settings/emails/_email-template.php:
|
2794 |
#, php-format
|
2795 |
msgid ""
|
2796 |
"To override and edit this email template copy <code>%s</code> to your theme "
|
@@ -2945,22 +2926,29 @@ msgstr ""
|
|
2945 |
msgid "Send email to user when the order is completed."
|
2946 |
msgstr ""
|
2947 |
|
2948 |
-
#: inc/admin/views/settings/emails/_email-template.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2949 |
#, php-format
|
2950 |
msgid ""
|
2951 |
"This template has been overridden by your theme and can be found in: <code>"
|
2952 |
"%s</code>."
|
2953 |
msgstr ""
|
2954 |
|
2955 |
-
#: inc/admin/views/settings/emails/_email-template.php:
|
2956 |
msgid "Delete template file"
|
2957 |
msgstr ""
|
2958 |
|
2959 |
-
#: inc/admin/views/settings/emails/_email-template.php:
|
2960 |
msgid "Copy file to theme"
|
2961 |
msgstr ""
|
2962 |
|
2963 |
-
#: inc/admin/views/settings/emails/_email-template.php:
|
2964 |
msgid "File was not found."
|
2965 |
msgstr ""
|
2966 |
|
@@ -3158,32 +3146,28 @@ msgstr ""
|
|
3158 |
msgid "Sorry! This course is not purchasable."
|
3159 |
msgstr ""
|
3160 |
|
3161 |
-
#: inc/cart/class-lp-cart.php:
|
3162 |
-
msgid "Please login to continue process."
|
3163 |
-
msgstr ""
|
3164 |
-
|
3165 |
-
#: inc/cart/class-lp-cart.php:242
|
3166 |
msgid "Cart page is not setting up."
|
3167 |
msgstr ""
|
3168 |
|
3169 |
-
#: inc/cart/class-lp-cart.php:
|
3170 |
msgid "Back to class"
|
3171 |
msgstr ""
|
3172 |
|
3173 |
-
#: inc/cart/class-lp-cart.php:
|
3174 |
msgid "Checkout page is not setting up."
|
3175 |
msgstr ""
|
3176 |
|
3177 |
-
#: inc/cart/class-lp-cart.php:
|
3178 |
msgid "View cart"
|
3179 |
msgstr ""
|
3180 |
|
3181 |
-
#: inc/cart/class-lp-cart.php:
|
3182 |
#, php-format
|
3183 |
msgid "<strong>%s</strong> has been added to your cart. %s"
|
3184 |
msgstr ""
|
3185 |
|
3186 |
-
#: inc/cart/class-lp-cart.php:
|
3187 |
msgid "Checkout page is not setup"
|
3188 |
msgstr ""
|
3189 |
|
@@ -3219,18 +3203,18 @@ msgstr ""
|
|
3219 |
msgid "The function %s doesn't exists"
|
3220 |
msgstr ""
|
3221 |
|
3222 |
-
#: inc/course/abstract-lp-course.php:
|
3223 |
#, php-format
|
3224 |
msgid "%d of %d items completed"
|
3225 |
msgstr ""
|
3226 |
|
3227 |
-
#: inc/course/abstract-lp-course.php:
|
3228 |
-
#: inc/course/abstract-lp-course.php:
|
3229 |
#, php-format
|
3230 |
msgid "%d%% completed"
|
3231 |
msgstr ""
|
3232 |
|
3233 |
-
#: inc/course/abstract-lp-course.php:
|
3234 |
#, php-format
|
3235 |
msgid "This course will end within %s next"
|
3236 |
msgstr ""
|
@@ -3240,7 +3224,7 @@ msgstr ""
|
|
3240 |
msgid "Are you sure you want to finish course %s?"
|
3241 |
msgstr ""
|
3242 |
|
3243 |
-
#: inc/course/class-lp-course.php:32 templates/single-course/buttons.php:
|
3244 |
msgid "Finish course"
|
3245 |
msgstr ""
|
3246 |
|
@@ -3287,83 +3271,84 @@ msgid ""
|
|
3287 |
"will reload"
|
3288 |
msgstr ""
|
3289 |
|
3290 |
-
#: inc/course/lp-course-functions.php:
|
3291 |
msgctxt "slug"
|
3292 |
msgid "uncategorized"
|
3293 |
msgstr ""
|
3294 |
|
3295 |
-
#: inc/course/lp-course-functions.php:
|
3296 |
#, php-format
|
3297 |
msgid "The course %d does not exists"
|
3298 |
msgstr ""
|
3299 |
|
3300 |
-
#: inc/course/lp-course-functions.php:
|
3301 |
msgid "Course item navigation"
|
3302 |
msgstr ""
|
3303 |
|
3304 |
-
#: inc/course/lp-course-functions.php:
|
3305 |
#: templates/content-quiz/buttons.php:31
|
3306 |
msgid "Previous"
|
3307 |
msgstr ""
|
3308 |
|
3309 |
-
#: inc/course/lp-course-functions.php:
|
3310 |
msgid "Previous post:"
|
3311 |
msgstr ""
|
3312 |
|
3313 |
-
#: inc/course/lp-course-functions.php:
|
|
|
3314 |
#: templates/content-quiz/buttons.php:32
|
3315 |
msgid "Next"
|
3316 |
msgstr ""
|
3317 |
|
3318 |
-
#: inc/course/lp-course-functions.php:
|
3319 |
msgid "Next post:"
|
3320 |
msgstr ""
|
3321 |
|
3322 |
-
#: inc/custom-post-types/abstract.php:414
|
3323 |
#: inc/custom-post-types/abstract.php:417
|
|
|
3324 |
msgid "updated."
|
3325 |
msgstr ""
|
3326 |
|
3327 |
-
#: inc/custom-post-types/abstract.php:
|
3328 |
msgid "Custom field updated."
|
3329 |
msgstr ""
|
3330 |
|
3331 |
-
#: inc/custom-post-types/abstract.php:
|
3332 |
msgid "Custom field deleted."
|
3333 |
msgstr ""
|
3334 |
|
3335 |
-
#: inc/custom-post-types/abstract.php:
|
3336 |
#, php-format
|
3337 |
msgid "Lesson restored to revision from %s"
|
3338 |
msgstr ""
|
3339 |
|
3340 |
-
#: inc/custom-post-types/abstract.php:
|
3341 |
msgid "published."
|
3342 |
msgstr ""
|
3343 |
|
3344 |
-
#: inc/custom-post-types/abstract.php:
|
3345 |
msgid "saved."
|
3346 |
msgstr ""
|
3347 |
|
3348 |
-
#: inc/custom-post-types/abstract.php:
|
3349 |
msgid "submitted."
|
3350 |
msgstr ""
|
3351 |
|
3352 |
-
#: inc/custom-post-types/abstract.php:
|
3353 |
#, php-format
|
3354 |
msgid "scheduled for: <strong>%1$s</strong>."
|
3355 |
msgstr ""
|
3356 |
|
3357 |
-
#: inc/custom-post-types/abstract.php:
|
3358 |
msgid "M j, Y @ G:i"
|
3359 |
msgstr ""
|
3360 |
|
3361 |
-
#: inc/custom-post-types/abstract.php:
|
3362 |
msgid "draft updated."
|
3363 |
msgstr ""
|
3364 |
|
3365 |
-
#: inc/custom-post-types/abstract.php:
|
3366 |
-
#: inc/custom-post-types/abstract.php:
|
3367 |
#: inc/custom-post-types/question.php:279 inc/custom-post-types/quiz.php:350
|
3368 |
#: templates/profile/tabs/orders.php:39
|
3369 |
msgid "View"
|
@@ -3470,270 +3455,266 @@ msgctxt "slug"
|
|
3470 |
msgid "course-tag"
|
3471 |
msgstr ""
|
3472 |
|
3473 |
-
#: inc/custom-post-types/course.php:
|
3474 |
msgid "Sorry! You can not update a course while it is viewing!"
|
3475 |
msgstr ""
|
3476 |
|
3477 |
-
#: inc/custom-post-types/course.php:
|
3478 |
msgid "Toggle Course Content"
|
3479 |
msgstr ""
|
3480 |
|
3481 |
-
#: inc/custom-post-types/course.php:
|
3482 |
msgid "Please enter the title of the course"
|
3483 |
msgstr ""
|
3484 |
|
3485 |
-
#: inc/custom-post-types/course.php:
|
3486 |
msgid "Please add at least one section for the course"
|
3487 |
msgstr ""
|
3488 |
|
3489 |
-
#: inc/custom-post-types/course.php:
|
3490 |
msgid "Please enter the title of the section"
|
3491 |
msgstr ""
|
3492 |
|
3493 |
-
#: inc/custom-post-types/course.php:
|
3494 |
msgid "Please set a price for this course"
|
3495 |
msgstr ""
|
3496 |
|
3497 |
-
#: inc/custom-post-types/course.php:
|
3498 |
msgid "You course will become to Pending"
|
3499 |
msgstr ""
|
3500 |
|
3501 |
-
#: inc/custom-post-types/course.php:
|
3502 |
msgctxt "Post Type General Name"
|
3503 |
msgid "Courses"
|
3504 |
msgstr ""
|
3505 |
|
3506 |
-
#: inc/custom-post-types/course.php:
|
3507 |
msgctxt "Post Type Singular Name"
|
3508 |
msgid "Course"
|
3509 |
msgstr ""
|
3510 |
|
3511 |
-
#: inc/custom-post-types/course.php:
|
3512 |
msgid "Parent Item:"
|
3513 |
msgstr ""
|
3514 |
|
3515 |
-
#: inc/custom-post-types/course.php:
|
3516 |
msgid "View Course"
|
3517 |
msgstr ""
|
3518 |
|
3519 |
-
#: inc/custom-post-types/course.php:
|
3520 |
msgid "Add New Course"
|
3521 |
msgstr ""
|
3522 |
|
3523 |
-
#: inc/custom-post-types/course.php:
|
3524 |
msgid "Edit Course"
|
3525 |
msgstr ""
|
3526 |
|
3527 |
-
#: inc/custom-post-types/course.php:
|
3528 |
msgid "Update Course"
|
3529 |
msgstr ""
|
3530 |
|
3531 |
-
#: inc/custom-post-types/course.php:
|
3532 |
msgid "Search Courses"
|
3533 |
msgstr ""
|
3534 |
|
3535 |
-
#: inc/custom-post-types/course.php:
|
3536 |
#, php-format
|
3537 |
msgid ""
|
3538 |
"You have not got any courses yet. Click <a href=\"%s\">Add new</a> to start"
|
3539 |
msgstr ""
|
3540 |
|
3541 |
-
#: inc/custom-post-types/course.php:
|
3542 |
msgid "No course found in Trash"
|
3543 |
msgstr ""
|
3544 |
|
3545 |
-
#: inc/custom-post-types/course.php:
|
3546 |
msgid "General Settings"
|
3547 |
msgstr ""
|
3548 |
|
3549 |
-
#: inc/custom-post-types/course.php:
|
3550 |
#: inc/custom-post-types/quiz.php:165 inc/custom-post-types/quiz.php:319
|
3551 |
msgid "Duration"
|
3552 |
msgstr ""
|
3553 |
|
3554 |
-
#: inc/custom-post-types/course.php:
|
3555 |
msgid "The duration of the course (by weeks)."
|
3556 |
msgstr ""
|
3557 |
|
3558 |
-
#: inc/custom-post-types/course.php:
|
3559 |
msgid "Maximum students"
|
3560 |
msgstr ""
|
3561 |
|
3562 |
-
#: inc/custom-post-types/course.php:
|
3563 |
msgid "Maximum number of students who can enroll in this course."
|
3564 |
msgstr ""
|
3565 |
|
3566 |
-
#: inc/custom-post-types/course.php:
|
3567 |
msgid "Students enrolled"
|
3568 |
msgstr ""
|
3569 |
|
3570 |
-
#: inc/custom-post-types/course.php:
|
3571 |
msgid "How many students have taken this course."
|
3572 |
msgstr ""
|
3573 |
|
3574 |
-
#: inc/custom-post-types/course.php:
|
3575 |
msgid "Re-take course"
|
3576 |
msgstr ""
|
3577 |
|
3578 |
-
#: inc/custom-post-types/course.php:
|
3579 |
msgid "How many times the user can re-take this course. Set to 0 to disable."
|
3580 |
msgstr ""
|
3581 |
|
3582 |
-
#: inc/custom-post-types/course.php:
|
3583 |
msgid "Featured"
|
3584 |
msgstr ""
|
3585 |
|
3586 |
-
#: inc/custom-post-types/course.php:
|
3587 |
msgid "Set course as featured."
|
3588 |
msgstr ""
|
3589 |
|
3590 |
-
#: inc/custom-post-types/course.php:
|
3591 |
msgid "The method to assess the result of a student for a course."
|
3592 |
msgstr ""
|
3593 |
|
3594 |
-
#: inc/custom-post-types/course.php:
|
3595 |
msgid ""
|
3596 |
"<br /><strong>Note! </strong>No final quiz in course, please add a final quiz"
|
3597 |
msgstr ""
|
3598 |
|
3599 |
-
#: inc/custom-post-types/course.php:
|
3600 |
msgid "Assessment"
|
3601 |
msgstr ""
|
3602 |
|
3603 |
-
#: inc/custom-post-types/course.php:
|
3604 |
msgid "Course result"
|
3605 |
msgstr ""
|
3606 |
|
3607 |
-
#: inc/custom-post-types/course.php:
|
3608 |
msgid "Evaluate lessons"
|
3609 |
msgstr ""
|
3610 |
|
3611 |
-
#: inc/custom-post-types/course.php:
|
3612 |
msgid "Evaluate result of quizzes"
|
3613 |
msgstr ""
|
3614 |
|
3615 |
-
#: inc/custom-post-types/course.php:
|
3616 |
msgid "Evaluate the result of the final quiz"
|
3617 |
msgstr ""
|
3618 |
|
3619 |
-
#: inc/custom-post-types/course.php:
|
3620 |
msgid "Passing condition value"
|
3621 |
msgstr ""
|
3622 |
|
3623 |
-
#: inc/custom-post-types/course.php:
|
3624 |
msgid ""
|
3625 |
"The percentage of quiz result or lessons completed to finish the course."
|
3626 |
msgstr ""
|
3627 |
|
3628 |
-
#: inc/custom-post-types/course.php:
|
3629 |
msgid "Payment Settings"
|
3630 |
msgstr ""
|
3631 |
|
3632 |
-
#: inc/custom-post-types/course.php:
|
3633 |
msgid "Course payment"
|
3634 |
msgstr ""
|
3635 |
|
3636 |
-
#: inc/custom-post-types/course.php:
|
3637 |
#, php-format
|
3638 |
msgid ""
|
3639 |
"This course is requires enrollment and the suggested price is <strong>%s</"
|
3640 |
"strong>"
|
3641 |
msgstr ""
|
3642 |
|
3643 |
-
#: inc/custom-post-types/course.php:
|
3644 |
msgid "This course is free."
|
3645 |
msgstr ""
|
3646 |
|
3647 |
-
#: inc/custom-post-types/course.php:
|
3648 |
-
#: inc/custom-post-types/course.php:
|
3649 |
#: templates/emails/order-items-table.php:21
|
3650 |
msgid "Price"
|
3651 |
msgstr ""
|
3652 |
|
3653 |
-
#: inc/custom-post-types/course.php:
|
3654 |
msgid "Sale Price"
|
3655 |
msgstr ""
|
3656 |
|
3657 |
-
#: inc/custom-post-types/course.php:
|
3658 |
msgid "Schedule"
|
3659 |
msgstr ""
|
3660 |
|
3661 |
-
#: inc/custom-post-types/course.php:
|
3662 |
msgid "Sale start date"
|
3663 |
msgstr ""
|
3664 |
|
3665 |
-
#: inc/custom-post-types/course.php:
|
3666 |
msgid "Sale end date"
|
3667 |
msgstr ""
|
3668 |
|
3669 |
-
#: inc/custom-post-types/course.php:
|
3670 |
msgid "Price set by Admin"
|
3671 |
msgstr ""
|
3672 |
|
3673 |
-
#: inc/custom-post-types/course.php:
|
3674 |
msgid "Not set"
|
3675 |
msgstr ""
|
3676 |
|
3677 |
-
#: inc/custom-post-types/course.php:
|
3678 |
msgid "Course Suggestion Price"
|
3679 |
msgstr ""
|
3680 |
|
3681 |
-
#: inc/custom-post-types/course.php:
|
3682 |
msgid "The course price you want to suggest for admin to set."
|
3683 |
msgstr ""
|
3684 |
|
3685 |
-
#: inc/custom-post-types/course.php:
|
3686 |
msgid "Requires enroll"
|
3687 |
msgstr ""
|
3688 |
|
3689 |
-
#: inc/custom-post-types/course.php:
|
3690 |
msgid "Require users logged in to study or public to all."
|
3691 |
msgstr ""
|
3692 |
|
3693 |
-
#: inc/custom-post-types/course.php:
|
3694 |
msgid "Author Settings"
|
3695 |
msgstr ""
|
3696 |
|
3697 |
-
#: inc/custom-post-types/course.php:
|
3698 |
-
#: inc/custom-post-types/course.php:
|
3699 |
#: inc/custom-post-types/question.php:243 inc/custom-post-types/quiz.php:316
|
3700 |
msgid "Author"
|
3701 |
msgstr ""
|
3702 |
|
3703 |
-
#: inc/custom-post-types/course.php:
|
3704 |
-
msgid "Select author"
|
3705 |
-
msgstr ""
|
3706 |
-
|
3707 |
-
#: inc/custom-post-types/course.php:837
|
3708 |
msgid "Review Logs"
|
3709 |
msgstr ""
|
3710 |
|
3711 |
-
#: inc/custom-post-types/course.php:
|
3712 |
msgid "Course Curriculum only appear if course is saved"
|
3713 |
msgstr ""
|
3714 |
|
3715 |
-
#: inc/custom-post-types/course.php:
|
3716 |
msgid "Course has approved by Reviewer"
|
3717 |
msgstr ""
|
3718 |
|
3719 |
-
#: inc/custom-post-types/course.php:
|
3720 |
msgid "Course has rejected by Reviewer"
|
3721 |
msgstr ""
|
3722 |
|
3723 |
-
#: inc/custom-post-types/course.php:
|
3724 |
#, php-format
|
3725 |
msgid "Course has submitted by %s"
|
3726 |
msgstr ""
|
3727 |
|
3728 |
-
#: inc/custom-post-types/course.php:
|
3729 |
msgid "Course has updated by Reviewer"
|
3730 |
msgstr ""
|
3731 |
|
3732 |
-
#: inc/custom-post-types/course.php:
|
3733 |
msgid "Your course has been published"
|
3734 |
msgstr ""
|
3735 |
|
3736 |
-
#: inc/custom-post-types/course.php:
|
3737 |
#, php-format
|
3738 |
msgctxt "learnpress"
|
3739 |
msgid "%d section"
|
@@ -3741,7 +3722,7 @@ msgid_plural "%d sections"
|
|
3741 |
msgstr[0] ""
|
3742 |
msgstr[1] ""
|
3743 |
|
3744 |
-
#: inc/custom-post-types/course.php:
|
3745 |
#, php-format
|
3746 |
msgctxt "learnpress"
|
3747 |
msgid "%d lesson"
|
@@ -3749,11 +3730,11 @@ msgid_plural "%d lessons"
|
|
3749 |
msgstr[0] ""
|
3750 |
msgstr[1] ""
|
3751 |
|
3752 |
-
#: inc/custom-post-types/course.php:
|
3753 |
msgid "0 lesson"
|
3754 |
msgstr ""
|
3755 |
|
3756 |
-
#: inc/custom-post-types/course.php:
|
3757 |
#, php-format
|
3758 |
msgctxt "learnpress"
|
3759 |
msgid "%d quiz"
|
@@ -3761,55 +3742,55 @@ msgid_plural "%d quizzes"
|
|
3761 |
msgstr[0] ""
|
3762 |
msgstr[1] ""
|
3763 |
|
3764 |
-
#: inc/custom-post-types/course.php:
|
3765 |
msgid "0 quiz"
|
3766 |
msgstr ""
|
3767 |
|
3768 |
-
#: inc/custom-post-types/course.php:
|
3769 |
msgid "No content"
|
3770 |
msgstr ""
|
3771 |
|
3772 |
-
#: inc/custom-post-types/course.php:
|
3773 |
msgid "Course Video"
|
3774 |
msgstr ""
|
3775 |
|
3776 |
-
#: inc/custom-post-types/course.php:
|
3777 |
msgid "Video ID"
|
3778 |
msgstr ""
|
3779 |
|
3780 |
-
#: inc/custom-post-types/course.php:
|
3781 |
msgid "The id of Youtube or Vimeo video"
|
3782 |
msgstr ""
|
3783 |
|
3784 |
-
#: inc/custom-post-types/course.php:
|
3785 |
msgid "Video Type"
|
3786 |
msgstr ""
|
3787 |
|
3788 |
-
#: inc/custom-post-types/course.php:
|
3789 |
msgid "Chose video type"
|
3790 |
msgstr ""
|
3791 |
|
3792 |
-
#: inc/custom-post-types/course.php:
|
3793 |
msgid "Youtube"
|
3794 |
msgstr ""
|
3795 |
|
3796 |
-
#: inc/custom-post-types/course.php:
|
3797 |
msgid "Vimeo"
|
3798 |
msgstr ""
|
3799 |
|
3800 |
-
#: inc/custom-post-types/course.php:
|
3801 |
msgid "Embed width"
|
3802 |
msgstr ""
|
3803 |
|
3804 |
-
#: inc/custom-post-types/course.php:
|
3805 |
msgid "Set width of embed"
|
3806 |
msgstr ""
|
3807 |
|
3808 |
-
#: inc/custom-post-types/course.php:
|
3809 |
msgid "Embed height"
|
3810 |
msgstr ""
|
3811 |
|
3812 |
-
#: inc/custom-post-types/course.php:
|
3813 |
msgid "Set height of embed"
|
3814 |
msgstr ""
|
3815 |
|
@@ -3932,7 +3913,7 @@ msgstr ""
|
|
3932 |
msgid "Add New Order"
|
3933 |
msgstr ""
|
3934 |
|
3935 |
-
#: inc/custom-post-types/order.php:416 inc/custom-post-types/order.php:
|
3936 |
#: templates/order/order-details.php:13
|
3937 |
msgid "Order Details"
|
3938 |
msgstr ""
|
@@ -3953,55 +3934,7 @@ msgstr ""
|
|
3953 |
msgid "No order found in Trash"
|
3954 |
msgstr ""
|
3955 |
|
3956 |
-
#: inc/custom-post-types/order.php:486 inc/order/lp-order-functions.php:657
|
3957 |
-
msgctxt "Order status"
|
3958 |
-
msgid "Completed"
|
3959 |
-
msgstr ""
|
3960 |
-
|
3961 |
-
#: inc/custom-post-types/order.php:491
|
3962 |
-
#, php-format
|
3963 |
-
msgid "Completed <span class=\"count\">(%s)</span>"
|
3964 |
-
msgid_plural "Completed <span class=\"count\">(%s)</span>"
|
3965 |
-
msgstr[0] ""
|
3966 |
-
msgstr[1] ""
|
3967 |
-
|
3968 |
-
#: inc/custom-post-types/order.php:494 inc/order/lp-order-functions.php:656
|
3969 |
-
msgctxt "Order status"
|
3970 |
-
msgid "Processing"
|
3971 |
-
msgstr ""
|
3972 |
-
|
3973 |
-
#: inc/custom-post-types/order.php:499
|
3974 |
-
#, php-format
|
3975 |
-
msgid "Processing <span class=\"count\">(%s)</span>"
|
3976 |
-
msgid_plural "Processing <span class=\"count\">(%s)</span>"
|
3977 |
-
msgstr[0] ""
|
3978 |
-
msgstr[1] ""
|
3979 |
-
|
3980 |
-
#: inc/custom-post-types/order.php:502
|
3981 |
-
msgctxt "Order status"
|
3982 |
-
msgid "Pending Payment"
|
3983 |
-
msgstr ""
|
3984 |
-
|
3985 |
#: inc/custom-post-types/order.php:507
|
3986 |
-
#, php-format
|
3987 |
-
msgid "Pending Payment <span class=\"count\">(%s)</span>"
|
3988 |
-
msgid_plural "Pending Payment <span class=\"count\">(%s)</span>"
|
3989 |
-
msgstr[0] ""
|
3990 |
-
msgstr[1] ""
|
3991 |
-
|
3992 |
-
#: inc/custom-post-types/order.php:510 inc/order/lp-order-functions.php:658
|
3993 |
-
msgctxt "Order status"
|
3994 |
-
msgid "Cancelled"
|
3995 |
-
msgstr ""
|
3996 |
-
|
3997 |
-
#: inc/custom-post-types/order.php:515
|
3998 |
-
#, php-format
|
3999 |
-
msgid "Cancelled <span class=\"count\">(%s)</span>"
|
4000 |
-
msgid_plural "Cancelled <span class=\"count\">(%s)</span>"
|
4001 |
-
msgstr[0] ""
|
4002 |
-
msgstr[1] ""
|
4003 |
-
|
4004 |
-
#: inc/custom-post-types/order.php:564
|
4005 |
msgid "Order Actions"
|
4006 |
msgstr ""
|
4007 |
|
@@ -4282,15 +4215,15 @@ msgstr ""
|
|
4282 |
msgid "Your order {{order_number}} is completed"
|
4283 |
msgstr ""
|
4284 |
|
4285 |
-
#: inc/emails/class-lp-email.php:
|
4286 |
msgid "Template file copied to theme."
|
4287 |
msgstr ""
|
4288 |
|
4289 |
-
#: inc/emails/class-lp-email.php:
|
4290 |
msgid "Template file deleted from theme."
|
4291 |
msgstr ""
|
4292 |
|
4293 |
-
#: inc/emails/class-lp-email.php:
|
4294 |
msgid "Could not write to template file."
|
4295 |
msgstr ""
|
4296 |
|
@@ -4323,11 +4256,11 @@ msgstr ""
|
|
4323 |
msgid "Extensions"
|
4324 |
msgstr ""
|
4325 |
|
4326 |
-
#: inc/libraries/meta-box/inc/field.php:
|
4327 |
msgid "+"
|
4328 |
msgstr ""
|
4329 |
|
4330 |
-
#: inc/libraries/meta-box/inc/field.php:
|
4331 |
msgid "–"
|
4332 |
msgstr ""
|
4333 |
|
@@ -4489,29 +4422,77 @@ msgstr ""
|
|
4489 |
msgid "Invalid order status"
|
4490 |
msgstr ""
|
4491 |
|
4492 |
-
#: inc/order/lp-order-functions.php:
|
4493 |
msgctxt "Order status"
|
4494 |
msgid "Pending"
|
4495 |
msgstr ""
|
4496 |
|
4497 |
-
#: inc/order/lp-order-functions.php:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4498 |
msgid ""
|
4499 |
"Order received in case user buy a course but doesn't finalise the order."
|
4500 |
msgstr ""
|
4501 |
|
4502 |
-
#: inc/order/lp-order-functions.php:
|
4503 |
msgid "Payment received and the order is awaiting fulfillment."
|
4504 |
msgstr ""
|
4505 |
|
4506 |
-
#: inc/order/lp-order-functions.php:
|
4507 |
msgid "Order fulfilled and complete."
|
4508 |
msgstr ""
|
4509 |
|
4510 |
-
#: inc/order/lp-order-functions.php:
|
4511 |
msgid "The order is cancelled by an admin or the customer."
|
4512 |
msgstr ""
|
4513 |
|
4514 |
-
#: inc/order/lp-order-functions.php:
|
4515 |
#, php-format
|
4516 |
msgid "You have enrolled in this course. <a href=\"%s\">Order details</a>"
|
4517 |
msgstr ""
|
@@ -4628,7 +4609,7 @@ msgstr ""
|
|
4628 |
msgid "Retake quiz failed"
|
4629 |
msgstr ""
|
4630 |
|
4631 |
-
#: inc/quiz/class-lp-quiz-factory.php:
|
4632 |
#, php-format
|
4633 |
msgid ""
|
4634 |
"Action %s failed! Please contact site's administrator for more information."
|
@@ -4731,13 +4712,13 @@ msgstr ""
|
|
4731 |
msgid "Create quiz history need pass course ID"
|
4732 |
msgstr ""
|
4733 |
|
4734 |
-
#: inc/user/abstract-lp-user.php:
|
4735 |
-
#: inc/user/abstract-lp-user.php:
|
4736 |
#, php-format
|
4737 |
msgid "The role %s for user doesn't exists"
|
4738 |
msgstr ""
|
4739 |
|
4740 |
-
#: inc/user/abstract-lp-user.php:
|
4741 |
msgid "You have already completed this lesson"
|
4742 |
msgstr ""
|
4743 |
|
@@ -4795,43 +4776,43 @@ msgstr ""
|
|
4795 |
msgid "Profile picture is changed"
|
4796 |
msgstr ""
|
4797 |
|
4798 |
-
#: inc/user/lp-user-functions.php:787 inc/user/lp-user-functions.php:
|
4799 |
msgid "Old password incorrect!"
|
4800 |
msgstr ""
|
4801 |
|
4802 |
-
#: inc/user/lp-user-functions.php:800 inc/user/lp-user-functions.php:
|
4803 |
msgid "Confirmation password incorrect!"
|
4804 |
msgstr ""
|
4805 |
|
4806 |
-
#: inc/user/lp-user-functions.php:818 inc/user/lp-user-functions.php:
|
4807 |
msgid "Your change is saved"
|
4808 |
msgstr ""
|
4809 |
|
4810 |
-
#: inc/user/lp-user-functions.php:826 inc/user/lp-user-functions.php:
|
4811 |
msgid "Error on update your profile info"
|
4812 |
msgstr ""
|
4813 |
|
4814 |
-
#: inc/user/lp-user-functions.php:
|
4815 |
msgid "Please login to enroll this course"
|
4816 |
msgstr ""
|
4817 |
|
4818 |
-
#: inc/user/lp-user-functions.php:
|
4819 |
msgid "You have already finished course"
|
4820 |
msgstr ""
|
4821 |
|
4822 |
-
#: inc/user/lp-user-functions.php:
|
4823 |
msgid "You have already enrolled in this course"
|
4824 |
msgstr ""
|
4825 |
|
4826 |
-
#: inc/user/lp-user-functions.php:
|
4827 |
msgid "Your avatar updated"
|
4828 |
msgstr ""
|
4829 |
|
4830 |
-
#: inc/user/lp-user-functions.php:
|
4831 |
msgid "Your password updated"
|
4832 |
msgstr ""
|
4833 |
|
4834 |
-
#: inc/user/lp-user-functions.php:
|
4835 |
msgid "Change your password failed"
|
4836 |
msgstr ""
|
4837 |
|
@@ -5153,6 +5134,15 @@ msgstr ""
|
|
5153 |
msgid "This lesson has no content"
|
5154 |
msgstr ""
|
5155 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5156 |
#: templates/content-question/explanation.php:19
|
5157 |
msgid "Explanation:"
|
5158 |
msgstr ""
|
@@ -5386,11 +5376,7 @@ msgstr ""
|
|
5386 |
msgid "Passing condition: %s%%"
|
5387 |
msgstr ""
|
5388 |
|
5389 |
-
#: templates/profile/tabs/edit/avatar.php:
|
5390 |
-
msgid "Add a nice photo of yourself for your profile."
|
5391 |
-
msgstr ""
|
5392 |
-
|
5393 |
-
#: templates/profile/tabs/edit/avatar.php:53
|
5394 |
msgid "Upload"
|
5395 |
msgstr ""
|
5396 |
|
@@ -5440,23 +5426,24 @@ msgstr ""
|
|
5440 |
msgid "Enroll"
|
5441 |
msgstr ""
|
5442 |
|
5443 |
-
#: templates/single-course/buttons.php:
|
|
|
|
|
|
|
|
|
|
|
5444 |
#, php-format
|
5445 |
msgid "Retake course (+%d)"
|
5446 |
msgstr ""
|
5447 |
|
5448 |
-
#: templates/single-course/buttons.php:
|
5449 |
msgid "You have purchased this course. Please wait for approval."
|
5450 |
msgstr ""
|
5451 |
|
5452 |
-
#: templates/single-course/buttons.php:
|
5453 |
msgid "Sorry, you can not purchase this course"
|
5454 |
msgstr ""
|
5455 |
|
5456 |
-
#: templates/single-course/content-item-lp_lesson.php:33
|
5457 |
-
msgid "Complete"
|
5458 |
-
msgstr ""
|
5459 |
-
|
5460 |
#: templates/single-course/content-item-lp_quiz.php:55
|
5461 |
msgid "No questions"
|
5462 |
msgstr ""
|
7 |
#: inc/admin/views/meta-boxes/course/loop-item.php:48
|
8 |
#: inc/admin/views/meta-boxes/course/loop-item.php:49
|
9 |
#: inc/admin/views/meta-boxes/course/loop-section.php:37
|
10 |
+
#: inc/custom-post-types/course.php:685 inc/custom-post-types/question.php:131
|
11 |
#: inc/custom-post-types/quiz.php:133 inc/custom-post-types/quiz.php:134
|
12 |
#: inc/question/class-lp-question-multi-choice.php:148
|
13 |
#, fuzzy
|
15 |
msgstr ""
|
16 |
"Project-Id-Version: PACKAGE VERSION\n"
|
17 |
"Report-Msgid-Bugs-To: \n"
|
18 |
+
"POT-Creation-Date: 2017-01-24 10:43+0700\n"
|
19 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
20 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
21 |
"Language-Team: LANGUAGE <LL@li.org>\n"
|
112 |
|
113 |
#: inc/class-lp-ajax.php:532 inc/admin/lp-admin-functions.php:930
|
114 |
#: inc/admin/views/statistics/orders.php:63
|
115 |
+
#: templates/content-lesson/__complete-button.php:43
|
116 |
#: templates/single-course/content-item-lp_lesson.php:24
|
117 |
#: templates/single-course/section/item-meta.php:34
|
118 |
msgid "Completed"
|
259 |
msgid "Ok"
|
260 |
msgstr ""
|
261 |
|
262 |
+
#: inc/class-lp-install.php:90 inc/lp-core-functions.php:1951
|
263 |
+
#: inc/admin/class-lp-admin-ajax.php:851 inc/admin/class-lp-admin.php:181
|
264 |
#: inc/admin/views/meta-boxes/course/loop-section.php:48
|
265 |
+
#: inc/custom-post-types/course.php:756 templates/profile/tabs/orders.php:30
|
266 |
msgid "Cancel"
|
267 |
msgstr ""
|
268 |
|
293 |
msgid "Add-ons"
|
294 |
msgstr ""
|
295 |
|
296 |
+
#: inc/class-lp-shortcodes.php:163 inc/class-lp-shortcodes.php:332
|
297 |
msgid "Invalid order!"
|
298 |
msgstr ""
|
299 |
|
300 |
+
#: inc/class-lp-shortcodes.php:214
|
301 |
msgid "Please login to fill in this form."
|
302 |
msgstr ""
|
303 |
|
304 |
+
#: inc/class-lp-shortcodes.php:217
|
305 |
msgid "You are a teacher now."
|
306 |
msgstr ""
|
307 |
|
308 |
+
#: inc/class-lp-shortcodes.php:220 inc/lp-core-functions.php:1397
|
309 |
msgid "Your request has been sent! We will get in touch with you soon!"
|
310 |
msgstr ""
|
311 |
|
312 |
+
#: inc/class-lp-shortcodes.php:223
|
313 |
msgid "Your role is allowed to create a course."
|
314 |
msgstr ""
|
315 |
|
316 |
+
#: inc/class-lp-shortcodes.php:235
|
317 |
msgid "Become a Teacher"
|
318 |
msgstr ""
|
319 |
|
320 |
+
#: inc/class-lp-shortcodes.php:236
|
321 |
msgid "Fill in your information and send us to become a teacher."
|
322 |
msgstr ""
|
323 |
|
324 |
+
#: inc/class-lp-shortcodes.php:237 templates/global/become-teacher-form.php:13
|
325 |
msgid "Submit"
|
326 |
msgstr ""
|
327 |
|
328 |
+
#: inc/class-lp-shortcodes.php:238 templates/checkout/payment.php:16
|
329 |
msgid "Processing"
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: inc/class-lp-shortcodes.php:244
|
333 |
msgid "Name"
|
334 |
msgstr ""
|
335 |
|
336 |
+
#: inc/class-lp-shortcodes.php:246
|
337 |
msgid "Your name"
|
338 |
msgstr ""
|
339 |
|
340 |
+
#: inc/class-lp-shortcodes.php:250
|
341 |
msgid "Email"
|
342 |
msgstr ""
|
343 |
|
344 |
+
#: inc/class-lp-shortcodes.php:252
|
345 |
msgid "Your email address"
|
346 |
msgstr ""
|
347 |
|
348 |
+
#: inc/class-lp-shortcodes.php:256
|
349 |
msgid "Phone"
|
350 |
msgstr ""
|
351 |
|
352 |
+
#: inc/class-lp-shortcodes.php:258
|
353 |
msgid "Your phone number"
|
354 |
msgstr ""
|
355 |
|
356 |
+
#: inc/class-lp-shortcodes.php:294
|
357 |
#, php-format
|
358 |
msgid "The user %s is not available!"
|
359 |
msgstr ""
|
360 |
|
361 |
+
#: inc/class-lp-shortcodes.php:366
|
362 |
msgid "Forgot password?"
|
363 |
msgstr ""
|
364 |
|
365 |
+
#: inc/class-lp-shortcodes.php:368
|
366 |
msgid "Create new account"
|
367 |
msgstr ""
|
368 |
|
381 |
msgid "Related Themes <span class=\"count\">(%s)</span>"
|
382 |
msgstr ""
|
383 |
|
384 |
+
#: inc/lp-add-on-functions.php:118 inc/lp-core-functions.php:2281
|
385 |
+
#: inc/lp-core-functions.php:2692 inc/admin/lp-admin-actions.php:50
|
386 |
#: inc/admin/lp-admin-functions.php:558 inc/admin/lp-admin-functions.php:723
|
387 |
#: inc/admin/lp-admin-functions.php:925 inc/admin/sub-menus/tools.php:321
|
388 |
#: inc/admin/views/statistics/courses.php:27
|
592 |
msgstr ""
|
593 |
|
594 |
#: inc/lp-add-on-functions.php:996 inc/lp-add-on-functions.php:1063
|
595 |
+
#: inc/lp-core-functions.php:495
|
596 |
msgid "Get it now"
|
597 |
msgstr ""
|
598 |
|
599 |
#: inc/lp-add-on-functions.php:997 inc/lp-add-on-functions.php:1064
|
600 |
+
#: inc/lp-core-functions.php:496
|
601 |
msgid "View Demo"
|
602 |
msgstr ""
|
603 |
|
605 |
msgid "Other"
|
606 |
msgstr ""
|
607 |
|
608 |
+
#: inc/lp-core-functions.php:234 inc/lp-template-functions.php:1401
|
609 |
+
#: inc/admin/settings/class-lp-settings-courses.php:158
|
610 |
+
#: inc/course/lp-course-functions.php:493 inc/custom-post-types/lesson.php:93
|
611 |
msgid "Lesson"
|
612 |
msgstr ""
|
613 |
|
614 |
+
#: inc/lp-core-functions.php:235 inc/lp-template-functions.php:1391
|
615 |
+
#: inc/admin/settings/class-lp-settings-courses.php:165
|
616 |
#: inc/admin/settings/class-lp-settings-pages.php:22
|
617 |
+
#: inc/course/lp-course-functions.php:494
|
618 |
#: inc/custom-post-types/question.php:244 inc/custom-post-types/quiz.php:91
|
619 |
msgid "Quiz"
|
620 |
msgstr ""
|
621 |
|
622 |
+
#: inc/lp-core-functions.php:657
|
623 |
msgid "<"
|
624 |
msgstr ""
|
625 |
|
626 |
+
#: inc/lp-core-functions.php:658
|
627 |
msgid ">"
|
628 |
msgstr ""
|
629 |
|
630 |
+
#: inc/lp-core-functions.php:756
|
631 |
msgid "Minute(s)"
|
632 |
msgstr ""
|
633 |
|
634 |
+
#: inc/lp-core-functions.php:757
|
635 |
msgid "Hour(s)"
|
636 |
msgstr ""
|
637 |
|
638 |
+
#: inc/lp-core-functions.php:758
|
639 |
msgid "Day(s)"
|
640 |
msgstr ""
|
641 |
|
642 |
+
#: inc/lp-core-functions.php:759
|
643 |
msgid "Week(s)"
|
644 |
msgstr ""
|
645 |
|
646 |
+
#: inc/lp-core-functions.php:819 inc/lp-template-functions.php:697
|
647 |
#: inc/admin/class-lp-profile.php:77 inc/admin/lp-admin-functions.php:299
|
648 |
#: inc/admin/settings/class-lp-settings-courses.php:9
|
649 |
#: inc/admin/settings/class-lp-settings-pages.php:105
|
650 |
#: inc/admin/sub-menus/statistics.php:50 inc/admin/sub-menus/statistics.php:56
|
651 |
+
#: inc/custom-post-types/course.php:477 inc/custom-post-types/course.php:479
|
652 |
msgid "Courses"
|
653 |
msgstr ""
|
654 |
|
655 |
+
#: inc/lp-core-functions.php:825 inc/custom-post-types/course.php:1329
|
656 |
msgid "Categories"
|
657 |
msgstr ""
|
658 |
|
659 |
+
#: inc/lp-core-functions.php:830 inc/custom-post-types/course.php:244
|
660 |
msgid "Tags"
|
661 |
msgstr ""
|
662 |
|
663 |
+
#: inc/lp-core-functions.php:998
|
664 |
msgid "Left"
|
665 |
msgstr ""
|
666 |
|
667 |
+
#: inc/lp-core-functions.php:999
|
668 |
msgid "Right"
|
669 |
msgstr ""
|
670 |
|
671 |
+
#: inc/lp-core-functions.php:1000
|
672 |
msgid "Left with space"
|
673 |
msgstr ""
|
674 |
|
675 |
+
#: inc/lp-core-functions.php:1001
|
676 |
msgid "Right with space"
|
677 |
msgstr ""
|
678 |
|
679 |
+
#: inc/lp-core-functions.php:1269
|
680 |
msgid "week(s)"
|
681 |
msgstr ""
|
682 |
|
683 |
+
#: inc/lp-core-functions.php:1273
|
684 |
msgid "day(s)"
|
685 |
msgstr ""
|
686 |
|
687 |
+
#: inc/lp-core-functions.php:1278
|
688 |
msgid "hour(s)"
|
689 |
msgstr ""
|
690 |
|
691 |
+
#: inc/lp-core-functions.php:1282
|
692 |
msgid "min(s)"
|
693 |
msgstr ""
|
694 |
|
695 |
+
#: inc/lp-core-functions.php:1370
|
696 |
msgid "Please enter your name"
|
697 |
msgstr ""
|
698 |
|
699 |
+
#: inc/lp-core-functions.php:1375
|
700 |
msgid "Please enter your email address"
|
701 |
msgstr ""
|
702 |
|
703 |
+
#: inc/lp-core-functions.php:1382
|
704 |
msgid "Please moderate"
|
705 |
msgstr ""
|
706 |
|
707 |
+
#: inc/lp-core-functions.php:1383
|
708 |
#, php-format
|
709 |
msgid "The user <a href=\"%s\">%s</a> wants to be a teacher."
|
710 |
msgstr ""
|
711 |
|
712 |
+
#: inc/lp-core-functions.php:1385
|
713 |
#, php-format
|
714 |
msgid "Name: %s"
|
715 |
msgstr ""
|
716 |
|
717 |
+
#: inc/lp-core-functions.php:1386
|
718 |
#, php-format
|
719 |
msgid "Email: %s"
|
720 |
msgstr ""
|
721 |
|
722 |
+
#: inc/lp-core-functions.php:1387
|
723 |
#, php-format
|
724 |
msgid "Phone: %s"
|
725 |
msgstr ""
|
726 |
|
727 |
+
#: inc/lp-core-functions.php:1388
|
728 |
#, php-format
|
729 |
msgid "Accept: %s"
|
730 |
msgstr ""
|
731 |
|
732 |
+
#: inc/lp-core-functions.php:1950 inc/admin/class-lp-admin.php:180
|
733 |
msgid "OK"
|
734 |
msgstr ""
|
735 |
|
736 |
+
#: inc/lp-core-functions.php:1952 inc/admin/class-lp-admin.php:182
|
737 |
#: inc/custom-post-types/quiz.php:223 inc/custom-post-types/quiz.php:234
|
738 |
msgid "Yes"
|
739 |
msgstr ""
|
740 |
|
741 |
+
#: inc/lp-core-functions.php:1953 inc/admin/class-lp-admin.php:183
|
742 |
#: inc/custom-post-types/quiz.php:179 inc/custom-post-types/quiz.php:222
|
743 |
#: inc/custom-post-types/quiz.php:233
|
744 |
msgid "No"
|
745 |
msgstr ""
|
746 |
|
747 |
+
#: inc/lp-core-functions.php:2282
|
748 |
msgid "Learning"
|
749 |
msgstr ""
|
750 |
|
751 |
+
#: inc/lp-core-functions.php:2283 inc/custom-post-types/order.php:305
|
752 |
msgid "Purchased"
|
753 |
msgstr ""
|
754 |
|
755 |
+
#: inc/lp-core-functions.php:2284 inc/lp-core-functions.php:2694
|
756 |
msgid "Finished"
|
757 |
msgstr ""
|
758 |
|
759 |
+
#: inc/lp-core-functions.php:2285
|
760 |
msgid "Own"
|
761 |
msgstr ""
|
762 |
|
763 |
+
#: inc/lp-core-functions.php:2394
|
764 |
#, php-format
|
765 |
msgid "Congrats! You've enrolled course \"%s\"."
|
766 |
msgstr ""
|
767 |
|
768 |
+
#: inc/lp-core-functions.php:2427
|
769 |
msgid "Cart"
|
770 |
msgstr ""
|
771 |
|
772 |
+
#: inc/lp-core-functions.php:2431
|
773 |
msgid "Enable cart"
|
774 |
msgstr ""
|
775 |
|
776 |
+
#: inc/lp-core-functions.php:2432
|
777 |
msgid "Check this option to enable user purchase multiple courses at one time."
|
778 |
msgstr ""
|
779 |
|
780 |
+
#: inc/lp-core-functions.php:2438
|
781 |
msgid "Add to cart redirect"
|
782 |
msgstr ""
|
783 |
|
784 |
+
#: inc/lp-core-functions.php:2439
|
785 |
msgid "Redirect to checkout immediately after adding course to cart."
|
786 |
msgstr ""
|
787 |
|
788 |
+
#: inc/lp-core-functions.php:2445
|
789 |
msgid "AJAX add to cart"
|
790 |
msgstr ""
|
791 |
|
792 |
+
#: inc/lp-core-functions.php:2446
|
793 |
msgid "Using AJAX to add course to cart."
|
794 |
msgstr ""
|
795 |
|
796 |
+
#: inc/lp-core-functions.php:2452
|
797 |
msgid "Cart page"
|
798 |
msgstr ""
|
799 |
|
800 |
+
#: inc/lp-core-functions.php:2575
|
801 |
msgid "Are you sure you want to cancel order?"
|
802 |
msgstr ""
|
803 |
|
804 |
+
#: inc/lp-core-functions.php:2576
|
805 |
msgid "Cancel Order"
|
806 |
msgstr ""
|
807 |
|
808 |
+
#: inc/lp-core-functions.php:2592
|
809 |
msgid "Unknown error!"
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: inc/lp-core-functions.php:2593
|
813 |
msgid "Invalid field!"
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: inc/lp-core-functions.php:2613
|
817 |
#, php-format
|
818 |
msgid "Order number <strong>%s</strong> not found"
|
819 |
msgstr ""
|
820 |
|
821 |
+
#: inc/lp-core-functions.php:2616
|
822 |
msgid "Order cancelled by customer"
|
823 |
msgstr ""
|
824 |
|
825 |
+
#: inc/lp-core-functions.php:2619
|
826 |
#, php-format
|
827 |
msgid "Order number <strong>%s</strong> has been cancelled"
|
828 |
msgstr ""
|
829 |
|
830 |
+
#: inc/lp-core-functions.php:2622
|
831 |
#, php-format
|
832 |
msgid "Order number <strong>%s</strong> can not cancelled"
|
833 |
msgstr ""
|
834 |
|
835 |
+
#: inc/lp-core-functions.php:2693
|
836 |
msgid "In Progress"
|
837 |
msgstr ""
|
838 |
|
864 |
msgstr ""
|
865 |
|
866 |
#: inc/lp-template-functions.php:1059
|
867 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:69
|
868 |
msgid "Order received"
|
869 |
msgstr ""
|
870 |
|
883 |
msgid " – Page %s"
|
884 |
msgstr ""
|
885 |
|
886 |
+
#: inc/lp-template-functions.php:1395
|
887 |
msgid "Final"
|
888 |
msgstr ""
|
889 |
|
890 |
+
#: inc/lp-template-functions.php:1404 inc/custom-post-types/abstract.php:457
|
891 |
#: inc/custom-post-types/lesson.php:211
|
892 |
#: inc/libraries/meta-box/inc/fields/oembed.php:70
|
893 |
#: templates/single-course/section/item-meta.php:23
|
894 |
msgid "Preview"
|
895 |
msgstr ""
|
896 |
|
897 |
+
#: inc/lp-template-functions.php:1476
|
898 |
msgid "Overview"
|
899 |
msgstr ""
|
900 |
|
901 |
+
#: inc/lp-template-functions.php:1484
|
902 |
#: inc/admin/views/meta-boxes/course/curriculum.php:8
|
903 |
+
#: inc/custom-post-types/course.php:546
|
904 |
msgid "Curriculum"
|
905 |
msgstr ""
|
906 |
|
907 |
+
#: inc/lp-webhooks.php:82
|
908 |
+
#, php-format
|
909 |
+
msgid "LearnPress webhook %s process completed"
|
910 |
+
msgstr ""
|
911 |
+
|
912 |
+
#: inc/lp-webhooks.php:88
|
913 |
msgid "LearnPress webhook process Complete"
|
914 |
msgstr ""
|
915 |
|
936 |
#: inc/quiz/class-lp-quiz-factory.php:127
|
937 |
#: inc/quiz/class-lp-quiz-factory.php:162
|
938 |
#: inc/quiz/class-lp-quiz-factory.php:174
|
939 |
+
#: inc/quiz/class-lp-quiz-factory.php:371
|
940 |
msgid "Error"
|
941 |
msgstr ""
|
942 |
|
985 |
msgid "Verify nonce failed"
|
986 |
msgstr ""
|
987 |
|
988 |
+
#: inc/admin/class-lp-admin-ajax.php:745 inc/admin/class-lp-admin-ajax.php:972
|
989 |
#: inc/admin/lp-admin-functions.php:132
|
990 |
msgid "Edit Page"
|
991 |
msgstr ""
|
992 |
|
993 |
+
#: inc/admin/class-lp-admin-ajax.php:746 inc/admin/class-lp-admin-ajax.php:973
|
994 |
#: inc/admin/lp-admin-functions.php:133
|
995 |
msgid "View Page"
|
996 |
msgstr ""
|
1003 |
msgid "Empty page name!"
|
1004 |
msgstr ""
|
1005 |
|
1006 |
+
#: inc/admin/class-lp-admin-ajax.php:837
|
1007 |
msgid ""
|
1008 |
"Something went wrong! Please try again or ask <a href=\"https://wordpress."
|
1009 |
"org/support/\">support forums</a>."
|
1010 |
msgstr ""
|
1011 |
|
1012 |
+
#: inc/admin/class-lp-admin-ajax.php:850
|
1013 |
msgid "Try again!"
|
1014 |
msgstr ""
|
1015 |
|
1016 |
+
#: inc/admin/class-lp-admin-ajax.php:876
|
1017 |
msgid "Import sample data successes."
|
1018 |
msgstr ""
|
1019 |
|
1020 |
+
#: inc/admin/class-lp-admin-ajax.php:876
|
1021 |
msgid "View courses"
|
1022 |
msgstr ""
|
1023 |
|
1024 |
+
#: inc/admin/class-lp-admin-ajax.php:880
|
1025 |
msgid "Import sample data failed. Please try again!."
|
1026 |
msgstr ""
|
1027 |
|
1028 |
+
#: inc/admin/class-lp-admin-ajax.php:884
|
1029 |
msgid ""
|
1030 |
"Unknown error when installing/activating Import/Export addon. Please try "
|
1031 |
"again!"
|
1032 |
msgstr ""
|
1033 |
|
1034 |
+
#: inc/admin/class-lp-admin-ajax.php:900 inc/admin/class-lp-admin-ajax.php:921
|
1035 |
+
#: inc/admin/class-lp-admin-ajax.php:941
|
1036 |
msgid ""
|
1037 |
"You do not have sufficient permissions to deactivate plugins for this site."
|
1038 |
msgstr ""
|
1039 |
|
1040 |
+
#: inc/admin/class-lp-admin-ajax.php:1079
|
1041 |
msgid " course has duplicated"
|
1042 |
msgstr ""
|
1043 |
|
1368 |
#: inc/admin/views/statistics/orders.php:8
|
1369 |
#: inc/admin/views/statistics/users.php:8
|
1370 |
#: inc/admin/views/statistics/users.php:44
|
1371 |
+
#: inc/custom-post-types/course.php:1319 inc/custom-post-types/course.php:1325
|
1372 |
msgid "Students"
|
1373 |
msgstr ""
|
1374 |
|
1391 |
|
1392 |
#: inc/admin/lp-admin-functions.php:743
|
1393 |
#: inc/admin/views/statistics/courses.php:46
|
1394 |
+
#: inc/course/abstract-lp-course.php:563 inc/custom-post-types/course.php:1377
|
1395 |
#: inc/order/lp-order-functions.php:511
|
1396 |
#: inc/shortcodes/featured-courses/templates/cards.php:61
|
1397 |
#: inc/shortcodes/featured-courses/templates/grids.php:69
|
1549 |
msgid "Current Version"
|
1550 |
msgstr ""
|
1551 |
|
1552 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:30
|
1553 |
msgid "Total Raised"
|
1554 |
msgstr ""
|
1555 |
|
1556 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:45
|
1557 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:50
|
1558 |
#, php-format
|
1559 |
msgid "%d order"
|
1560 |
msgid_plural "%d orders"
|
1561 |
msgstr[0] ""
|
1562 |
msgstr[1] ""
|
1563 |
|
1564 |
+
#: inc/admin/dashboard-statistics/class-lp-statistic-status.php:63
|
|
|
|
|
|
|
|
|
1565 |
msgid "Created by: "
|
1566 |
msgstr ""
|
1567 |
|
1659 |
msgid "Can not create a question"
|
1660 |
msgstr ""
|
1661 |
|
1662 |
+
#: inc/admin/pointers/pointers.php:66 inc/custom-post-types/course.php:551
|
1663 |
#: templates/single-course/curriculum.php:16
|
1664 |
msgid "Course Curriculum"
|
1665 |
msgstr ""
|
1671 |
msgstr ""
|
1672 |
|
1673 |
#: inc/admin/settings/class-lp-settings-checkout.php:52
|
1674 |
+
msgid "Auto enroll"
|
1675 |
msgstr ""
|
1676 |
|
1677 |
#: inc/admin/settings/class-lp-settings-checkout.php:53
|
1678 |
+
msgid "Auto enroll a user after they buy a course."
|
|
|
|
|
1679 |
msgstr ""
|
1680 |
|
1681 |
#: inc/admin/settings/class-lp-settings-checkout.php:59
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1682 |
msgid "Checkout page"
|
1683 |
msgstr ""
|
1684 |
|
1685 |
+
#: inc/admin/settings/class-lp-settings-checkout.php:65
|
1686 |
msgid "Checkout Endpoints"
|
1687 |
msgstr ""
|
1688 |
|
1689 |
#: inc/admin/settings/class-lp-settings-courses.php:32
|
1690 |
+
#: inc/custom-post-types/course.php:490
|
1691 |
msgctxt "slug"
|
1692 |
msgid "courses"
|
1693 |
msgstr ""
|
1775 |
msgid "Single course permalink"
|
1776 |
msgstr ""
|
1777 |
|
1778 |
+
#: inc/admin/settings/class-lp-settings-courses.php:154
|
1779 |
+
msgid "Course item slug"
|
1780 |
+
msgstr ""
|
1781 |
+
|
1782 |
#: inc/admin/settings/class-lp-settings-emails.php:39
|
1783 |
msgid "General options"
|
1784 |
msgstr ""
|
1797 |
msgstr ""
|
1798 |
|
1799 |
#: inc/admin/settings/class-lp-settings-general.php:39
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1800 |
msgid "Currency"
|
1801 |
msgstr ""
|
1802 |
|
1803 |
+
#: inc/admin/settings/class-lp-settings-general.php:46
|
1804 |
msgid "Currency position"
|
1805 |
msgstr ""
|
1806 |
|
1807 |
+
#: inc/admin/settings/class-lp-settings-general.php:53
|
1808 |
msgid "Thousands Separator"
|
1809 |
msgstr ""
|
1810 |
|
1811 |
+
#: inc/admin/settings/class-lp-settings-general.php:60
|
1812 |
msgid "Decimals Separator"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
+
#: inc/admin/settings/class-lp-settings-general.php:67
|
1816 |
msgid "Number of Decimals"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
+
#: inc/admin/settings/class-lp-settings-general.php:74
|
1820 |
msgid "Load css"
|
1821 |
msgstr ""
|
1822 |
|
1823 |
+
#: inc/admin/settings/class-lp-settings-general.php:78
|
1824 |
msgid "Load default stylesheet for LearnPress"
|
1825 |
msgstr ""
|
1826 |
|
1827 |
+
#: inc/admin/settings/class-lp-settings-general.php:81
|
1828 |
msgid "Debug mode"
|
1829 |
msgstr ""
|
1830 |
|
1831 |
+
#: inc/admin/settings/class-lp-settings-general.php:85
|
1832 |
msgid "Turn on/off debug mode for developer"
|
1833 |
msgstr ""
|
1834 |
|
1930 |
msgid "Ratio"
|
1931 |
msgstr ""
|
1932 |
|
|
|
|
|
|
|
|
|
1933 |
#: inc/admin/settings/class-lp-settings-pages.php:154
|
1934 |
msgid "Endpoints"
|
1935 |
msgstr ""
|
2077 |
#: inc/admin/views/meta-boxes/quiz/question.php:36
|
2078 |
#: inc/libraries/meta-box/inc/fields/file-input.php:38
|
2079 |
#: inc/question/abstract-lp-question.php:653 templates/cart/form.php:72
|
2080 |
+
#: templates/profile/tabs/edit/avatar.php:60
|
2081 |
msgid "Remove"
|
2082 |
msgstr ""
|
2083 |
|
2250 |
msgstr ""
|
2251 |
|
2252 |
#: inc/admin/views/meta-boxes/course/editor.php:62
|
2253 |
+
#: inc/custom-post-types/course.php:1318 inc/custom-post-types/course.php:1324
|
2254 |
msgid "Content"
|
2255 |
msgstr ""
|
2256 |
|
2269 |
#: inc/admin/views/meta-boxes/course/loop-section.php:71
|
2270 |
#: inc/admin/views/meta-boxes/quiz/js-template.php:6
|
2271 |
#: inc/admin/views/meta-boxes/quiz/questions.php:36
|
2272 |
+
#: inc/custom-post-types/course.php:482 inc/custom-post-types/lesson.php:97
|
2273 |
#: inc/custom-post-types/order.php:419 inc/custom-post-types/question.php:100
|
2274 |
msgid "Add New"
|
2275 |
msgstr ""
|
2300 |
msgstr ""
|
2301 |
|
2302 |
#: inc/admin/views/meta-boxes/course/loop-item.php:49
|
2303 |
+
#: inc/custom-post-types/course.php:431
|
2304 |
msgid "Are you sure you want to remove this item?"
|
2305 |
msgstr ""
|
2306 |
|
2357 |
msgstr ""
|
2358 |
|
2359 |
#: inc/admin/views/meta-boxes/course/review-log.php:25
|
2360 |
+
#: inc/custom-post-types/course.php:433
|
2361 |
msgid "Your course is pending for reviewing"
|
2362 |
msgstr ""
|
2363 |
|
2759 |
msgid "Plain text template"
|
2760 |
msgstr ""
|
2761 |
|
2762 |
+
#: inc/admin/views/settings/emails/email-template.php:52
|
|
|
2763 |
#, php-format
|
2764 |
msgid ""
|
2765 |
"This template has been overridden by your theme and can be found in: <code>"
|
2766 |
+
"%s</code>. <br />Please open the file in an editor program to edit"
|
2767 |
msgstr ""
|
2768 |
|
2769 |
+
#: inc/admin/views/settings/emails/email-template.php:77
|
2770 |
msgid "Click on variables to add it into email content"
|
2771 |
msgstr ""
|
2772 |
|
2773 |
+
#: inc/admin/views/settings/emails/email-template.php:87
|
2774 |
+
#: inc/admin/views/settings/emails/_email-template.php:78
|
2775 |
#, php-format
|
2776 |
msgid ""
|
2777 |
"To override and edit this email template copy <code>%s</code> to your theme "
|
2926 |
msgid "Send email to user when the order is completed."
|
2927 |
msgstr ""
|
2928 |
|
2929 |
+
#: inc/admin/views/settings/emails/_email-template.php:36
|
2930 |
+
#, php-format
|
2931 |
+
msgid ""
|
2932 |
+
"This template has been overridden by your theme and can be found in: <code>"
|
2933 |
+
"%s</code>. Please open the file in an editor program to edit"
|
2934 |
+
msgstr ""
|
2935 |
+
|
2936 |
+
#: inc/admin/views/settings/emails/_email-template.php:63
|
2937 |
#, php-format
|
2938 |
msgid ""
|
2939 |
"This template has been overridden by your theme and can be found in: <code>"
|
2940 |
"%s</code>."
|
2941 |
msgstr ""
|
2942 |
|
2943 |
+
#: inc/admin/views/settings/emails/_email-template.php:68
|
2944 |
msgid "Delete template file"
|
2945 |
msgstr ""
|
2946 |
|
2947 |
+
#: inc/admin/views/settings/emails/_email-template.php:83
|
2948 |
msgid "Copy file to theme"
|
2949 |
msgstr ""
|
2950 |
|
2951 |
+
#: inc/admin/views/settings/emails/_email-template.php:89
|
2952 |
msgid "File was not found."
|
2953 |
msgstr ""
|
2954 |
|
3146 |
msgid "Sorry! This course is not purchasable."
|
3147 |
msgstr ""
|
3148 |
|
3149 |
+
#: inc/cart/class-lp-cart.php:249
|
|
|
|
|
|
|
|
|
3150 |
msgid "Cart page is not setting up."
|
3151 |
msgstr ""
|
3152 |
|
3153 |
+
#: inc/cart/class-lp-cart.php:252 templates/cart/empty-cart.php:19
|
3154 |
msgid "Back to class"
|
3155 |
msgstr ""
|
3156 |
|
3157 |
+
#: inc/cart/class-lp-cart.php:257 inc/cart/class-lp-cart.php:267
|
3158 |
msgid "Checkout page is not setting up."
|
3159 |
msgstr ""
|
3160 |
|
3161 |
+
#: inc/cart/class-lp-cart.php:259
|
3162 |
msgid "View cart"
|
3163 |
msgstr ""
|
3164 |
|
3165 |
+
#: inc/cart/class-lp-cart.php:262
|
3166 |
#, php-format
|
3167 |
msgid "<strong>%s</strong> has been added to your cart. %s"
|
3168 |
msgstr ""
|
3169 |
|
3170 |
+
#: inc/cart/class-lp-cart.php:554
|
3171 |
msgid "Checkout page is not setup"
|
3172 |
msgstr ""
|
3173 |
|
3203 |
msgid "The function %s doesn't exists"
|
3204 |
msgstr ""
|
3205 |
|
3206 |
+
#: inc/course/abstract-lp-course.php:1109
|
3207 |
#, php-format
|
3208 |
msgid "%d of %d items completed"
|
3209 |
msgstr ""
|
3210 |
|
3211 |
+
#: inc/course/abstract-lp-course.php:1112
|
3212 |
+
#: inc/course/abstract-lp-course.php:1114
|
3213 |
#, php-format
|
3214 |
msgid "%d%% completed"
|
3215 |
msgstr ""
|
3216 |
|
3217 |
+
#: inc/course/abstract-lp-course.php:1402
|
3218 |
#, php-format
|
3219 |
msgid "This course will end within %s next"
|
3220 |
msgstr ""
|
3224 |
msgid "Are you sure you want to finish course %s?"
|
3225 |
msgstr ""
|
3226 |
|
3227 |
+
#: inc/course/class-lp-course.php:32 templates/single-course/buttons.php:66
|
3228 |
msgid "Finish course"
|
3229 |
msgstr ""
|
3230 |
|
3271 |
"will reload"
|
3272 |
msgstr ""
|
3273 |
|
3274 |
+
#: inc/course/lp-course-functions.php:142
|
3275 |
msgctxt "slug"
|
3276 |
msgid "uncategorized"
|
3277 |
msgstr ""
|
3278 |
|
3279 |
+
#: inc/course/lp-course-functions.php:187
|
3280 |
#, php-format
|
3281 |
msgid "The course %d does not exists"
|
3282 |
msgstr ""
|
3283 |
|
3284 |
+
#: inc/course/lp-course-functions.php:645
|
3285 |
msgid "Course item navigation"
|
3286 |
msgstr ""
|
3287 |
|
3288 |
+
#: inc/course/lp-course-functions.php:652
|
3289 |
#: templates/content-quiz/buttons.php:31
|
3290 |
msgid "Previous"
|
3291 |
msgstr ""
|
3292 |
|
3293 |
+
#: inc/course/lp-course-functions.php:652
|
3294 |
msgid "Previous post:"
|
3295 |
msgstr ""
|
3296 |
|
3297 |
+
#: inc/course/lp-course-functions.php:660
|
3298 |
+
#: templates/content-lesson/__next-button.php:10
|
3299 |
#: templates/content-quiz/buttons.php:32
|
3300 |
msgid "Next"
|
3301 |
msgstr ""
|
3302 |
|
3303 |
+
#: inc/course/lp-course-functions.php:660
|
3304 |
msgid "Next post:"
|
3305 |
msgstr ""
|
3306 |
|
|
|
3307 |
#: inc/custom-post-types/abstract.php:417
|
3308 |
+
#: inc/custom-post-types/abstract.php:420
|
3309 |
msgid "updated."
|
3310 |
msgstr ""
|
3311 |
|
3312 |
+
#: inc/custom-post-types/abstract.php:418
|
3313 |
msgid "Custom field updated."
|
3314 |
msgstr ""
|
3315 |
|
3316 |
+
#: inc/custom-post-types/abstract.php:419
|
3317 |
msgid "Custom field deleted."
|
3318 |
msgstr ""
|
3319 |
|
3320 |
+
#: inc/custom-post-types/abstract.php:422
|
3321 |
#, php-format
|
3322 |
msgid "Lesson restored to revision from %s"
|
3323 |
msgstr ""
|
3324 |
|
3325 |
+
#: inc/custom-post-types/abstract.php:423
|
3326 |
msgid "published."
|
3327 |
msgstr ""
|
3328 |
|
3329 |
+
#: inc/custom-post-types/abstract.php:424
|
3330 |
msgid "saved."
|
3331 |
msgstr ""
|
3332 |
|
3333 |
+
#: inc/custom-post-types/abstract.php:425
|
3334 |
msgid "submitted."
|
3335 |
msgstr ""
|
3336 |
|
3337 |
+
#: inc/custom-post-types/abstract.php:427
|
3338 |
#, php-format
|
3339 |
msgid "scheduled for: <strong>%1$s</strong>."
|
3340 |
msgstr ""
|
3341 |
|
3342 |
+
#: inc/custom-post-types/abstract.php:429
|
3343 |
msgid "M j, Y @ G:i"
|
3344 |
msgstr ""
|
3345 |
|
3346 |
+
#: inc/custom-post-types/abstract.php:431
|
3347 |
msgid "draft updated."
|
3348 |
msgstr ""
|
3349 |
|
3350 |
+
#: inc/custom-post-types/abstract.php:437
|
3351 |
+
#: inc/custom-post-types/abstract.php:446 inc/custom-post-types/lesson.php:246
|
3352 |
#: inc/custom-post-types/question.php:279 inc/custom-post-types/quiz.php:350
|
3353 |
#: templates/profile/tabs/orders.php:39
|
3354 |
msgid "View"
|
3455 |
msgid "course-tag"
|
3456 |
msgstr ""
|
3457 |
|
3458 |
+
#: inc/custom-post-types/course.php:358
|
3459 |
msgid "Sorry! You can not update a course while it is viewing!"
|
3460 |
msgstr ""
|
3461 |
|
3462 |
+
#: inc/custom-post-types/course.php:394
|
3463 |
msgid "Toggle Course Content"
|
3464 |
msgstr ""
|
3465 |
|
3466 |
+
#: inc/custom-post-types/course.php:411
|
3467 |
msgid "Please enter the title of the course"
|
3468 |
msgstr ""
|
3469 |
|
3470 |
+
#: inc/custom-post-types/course.php:412
|
3471 |
msgid "Please add at least one section for the course"
|
3472 |
msgstr ""
|
3473 |
|
3474 |
+
#: inc/custom-post-types/course.php:413
|
3475 |
msgid "Please enter the title of the section"
|
3476 |
msgstr ""
|
3477 |
|
3478 |
+
#: inc/custom-post-types/course.php:414
|
3479 |
msgid "Please set a price for this course"
|
3480 |
msgstr ""
|
3481 |
|
3482 |
+
#: inc/custom-post-types/course.php:432
|
3483 |
msgid "You course will become to Pending"
|
3484 |
msgstr ""
|
3485 |
|
3486 |
+
#: inc/custom-post-types/course.php:475
|
3487 |
msgctxt "Post Type General Name"
|
3488 |
msgid "Courses"
|
3489 |
msgstr ""
|
3490 |
|
3491 |
+
#: inc/custom-post-types/course.php:476
|
3492 |
msgctxt "Post Type Singular Name"
|
3493 |
msgid "Course"
|
3494 |
msgstr ""
|
3495 |
|
3496 |
+
#: inc/custom-post-types/course.php:478
|
3497 |
msgid "Parent Item:"
|
3498 |
msgstr ""
|
3499 |
|
3500 |
+
#: inc/custom-post-types/course.php:480
|
3501 |
msgid "View Course"
|
3502 |
msgstr ""
|
3503 |
|
3504 |
+
#: inc/custom-post-types/course.php:481
|
3505 |
msgid "Add New Course"
|
3506 |
msgstr ""
|
3507 |
|
3508 |
+
#: inc/custom-post-types/course.php:483
|
3509 |
msgid "Edit Course"
|
3510 |
msgstr ""
|
3511 |
|
3512 |
+
#: inc/custom-post-types/course.php:484
|
3513 |
msgid "Update Course"
|
3514 |
msgstr ""
|
3515 |
|
3516 |
+
#: inc/custom-post-types/course.php:485
|
3517 |
msgid "Search Courses"
|
3518 |
msgstr ""
|
3519 |
|
3520 |
+
#: inc/custom-post-types/course.php:486
|
3521 |
#, php-format
|
3522 |
msgid ""
|
3523 |
"You have not got any courses yet. Click <a href=\"%s\">Add new</a> to start"
|
3524 |
msgstr ""
|
3525 |
|
3526 |
+
#: inc/custom-post-types/course.php:487
|
3527 |
msgid "No course found in Trash"
|
3528 |
msgstr ""
|
3529 |
|
3530 |
+
#: inc/custom-post-types/course.php:574 inc/custom-post-types/quiz.php:146
|
3531 |
msgid "General Settings"
|
3532 |
msgstr ""
|
3533 |
|
3534 |
+
#: inc/custom-post-types/course.php:579 inc/custom-post-types/lesson.php:209
|
3535 |
#: inc/custom-post-types/quiz.php:165 inc/custom-post-types/quiz.php:319
|
3536 |
msgid "Duration"
|
3537 |
msgstr ""
|
3538 |
|
3539 |
+
#: inc/custom-post-types/course.php:582
|
3540 |
msgid "The duration of the course (by weeks)."
|
3541 |
msgstr ""
|
3542 |
|
3543 |
+
#: inc/custom-post-types/course.php:586
|
3544 |
msgid "Maximum students"
|
3545 |
msgstr ""
|
3546 |
|
3547 |
+
#: inc/custom-post-types/course.php:589
|
3548 |
msgid "Maximum number of students who can enroll in this course."
|
3549 |
msgstr ""
|
3550 |
|
3551 |
+
#: inc/custom-post-types/course.php:593
|
3552 |
msgid "Students enrolled"
|
3553 |
msgstr ""
|
3554 |
|
3555 |
+
#: inc/custom-post-types/course.php:596
|
3556 |
msgid "How many students have taken this course."
|
3557 |
msgstr ""
|
3558 |
|
3559 |
+
#: inc/custom-post-types/course.php:600
|
3560 |
msgid "Re-take course"
|
3561 |
msgstr ""
|
3562 |
|
3563 |
+
#: inc/custom-post-types/course.php:603
|
3564 |
msgid "How many times the user can re-take this course. Set to 0 to disable."
|
3565 |
msgstr ""
|
3566 |
|
3567 |
+
#: inc/custom-post-types/course.php:607
|
3568 |
msgid "Featured"
|
3569 |
msgstr ""
|
3570 |
|
3571 |
+
#: inc/custom-post-types/course.php:610
|
3572 |
msgid "Set course as featured."
|
3573 |
msgstr ""
|
3574 |
|
3575 |
+
#: inc/custom-post-types/course.php:628
|
3576 |
msgid "The method to assess the result of a student for a course."
|
3577 |
msgstr ""
|
3578 |
|
3579 |
+
#: inc/custom-post-types/course.php:630
|
3580 |
msgid ""
|
3581 |
"<br /><strong>Note! </strong>No final quiz in course, please add a final quiz"
|
3582 |
msgstr ""
|
3583 |
|
3584 |
+
#: inc/custom-post-types/course.php:634
|
3585 |
msgid "Assessment"
|
3586 |
msgstr ""
|
3587 |
|
3588 |
+
#: inc/custom-post-types/course.php:639
|
3589 |
msgid "Course result"
|
3590 |
msgstr ""
|
3591 |
|
3592 |
+
#: inc/custom-post-types/course.php:644
|
3593 |
msgid "Evaluate lessons"
|
3594 |
msgstr ""
|
3595 |
|
3596 |
+
#: inc/custom-post-types/course.php:645
|
3597 |
msgid "Evaluate result of quizzes"
|
3598 |
msgstr ""
|
3599 |
|
3600 |
+
#: inc/custom-post-types/course.php:646
|
3601 |
msgid "Evaluate the result of the final quiz"
|
3602 |
msgstr ""
|
3603 |
|
3604 |
+
#: inc/custom-post-types/course.php:651
|
3605 |
msgid "Passing condition value"
|
3606 |
msgstr ""
|
3607 |
|
3608 |
+
#: inc/custom-post-types/course.php:656
|
3609 |
msgid ""
|
3610 |
"The percentage of quiz result or lessons completed to finish the course."
|
3611 |
msgstr ""
|
3612 |
|
3613 |
+
#: inc/custom-post-types/course.php:677
|
3614 |
msgid "Payment Settings"
|
3615 |
msgstr ""
|
3616 |
|
3617 |
+
#: inc/custom-post-types/course.php:682
|
3618 |
msgid "Course payment"
|
3619 |
msgstr ""
|
3620 |
|
3621 |
+
#: inc/custom-post-types/course.php:712
|
3622 |
#, php-format
|
3623 |
msgid ""
|
3624 |
"This course is requires enrollment and the suggested price is <strong>%s</"
|
3625 |
"strong>"
|
3626 |
msgstr ""
|
3627 |
|
3628 |
+
#: inc/custom-post-types/course.php:720
|
3629 |
msgid "This course is free."
|
3630 |
msgstr ""
|
3631 |
|
3632 |
+
#: inc/custom-post-types/course.php:726 inc/custom-post-types/course.php:1320
|
3633 |
+
#: inc/custom-post-types/course.php:1326 templates/cart/form.php:30
|
3634 |
#: templates/emails/order-items-table.php:21
|
3635 |
msgid "Price"
|
3636 |
msgstr ""
|
3637 |
|
3638 |
+
#: inc/custom-post-types/course.php:736
|
3639 |
msgid "Sale Price"
|
3640 |
msgstr ""
|
3641 |
|
3642 |
+
#: inc/custom-post-types/course.php:741
|
3643 |
msgid "Schedule"
|
3644 |
msgstr ""
|
3645 |
|
3646 |
+
#: inc/custom-post-types/course.php:746
|
3647 |
msgid "Sale start date"
|
3648 |
msgstr ""
|
3649 |
|
3650 |
+
#: inc/custom-post-types/course.php:753
|
3651 |
msgid "Sale end date"
|
3652 |
msgstr ""
|
3653 |
|
3654 |
+
#: inc/custom-post-types/course.php:764
|
3655 |
msgid "Price set by Admin"
|
3656 |
msgstr ""
|
3657 |
|
3658 |
+
#: inc/custom-post-types/course.php:768
|
3659 |
msgid "Not set"
|
3660 |
msgstr ""
|
3661 |
|
3662 |
+
#: inc/custom-post-types/course.php:771
|
3663 |
msgid "Course Suggestion Price"
|
3664 |
msgstr ""
|
3665 |
|
3666 |
+
#: inc/custom-post-types/course.php:776
|
3667 |
msgid "The course price you want to suggest for admin to set."
|
3668 |
msgstr ""
|
3669 |
|
3670 |
+
#: inc/custom-post-types/course.php:786
|
3671 |
msgid "Requires enroll"
|
3672 |
msgstr ""
|
3673 |
|
3674 |
+
#: inc/custom-post-types/course.php:789
|
3675 |
msgid "Require users logged in to study or public to all."
|
3676 |
msgstr ""
|
3677 |
|
3678 |
+
#: inc/custom-post-types/course.php:828
|
3679 |
msgid "Author Settings"
|
3680 |
msgstr ""
|
3681 |
|
3682 |
+
#: inc/custom-post-types/course.php:833 inc/custom-post-types/course.php:1317
|
3683 |
+
#: inc/custom-post-types/course.php:1323 inc/custom-post-types/lesson.php:204
|
3684 |
#: inc/custom-post-types/question.php:243 inc/custom-post-types/quiz.php:316
|
3685 |
msgid "Author"
|
3686 |
msgstr ""
|
3687 |
|
3688 |
+
#: inc/custom-post-types/course.php:857
|
|
|
|
|
|
|
|
|
3689 |
msgid "Review Logs"
|
3690 |
msgstr ""
|
3691 |
|
3692 |
+
#: inc/custom-post-types/course.php:1014
|
3693 |
msgid "Course Curriculum only appear if course is saved"
|
3694 |
msgstr ""
|
3695 |
|
3696 |
+
#: inc/custom-post-types/course.php:1172
|
3697 |
msgid "Course has approved by Reviewer"
|
3698 |
msgstr ""
|
3699 |
|
3700 |
+
#: inc/custom-post-types/course.php:1177
|
3701 |
msgid "Course has rejected by Reviewer"
|
3702 |
msgstr ""
|
3703 |
|
3704 |
+
#: inc/custom-post-types/course.php:1182
|
3705 |
#, php-format
|
3706 |
msgid "Course has submitted by %s"
|
3707 |
msgstr ""
|
3708 |
|
3709 |
+
#: inc/custom-post-types/course.php:1187
|
3710 |
msgid "Course has updated by Reviewer"
|
3711 |
msgstr ""
|
3712 |
|
3713 |
+
#: inc/custom-post-types/course.php:1224
|
3714 |
msgid "Your course has been published"
|
3715 |
msgstr ""
|
3716 |
|
3717 |
+
#: inc/custom-post-types/course.php:1352
|
3718 |
#, php-format
|
3719 |
msgctxt "learnpress"
|
3720 |
msgid "%d section"
|
3722 |
msgstr[0] ""
|
3723 |
msgstr[1] ""
|
3724 |
|
3725 |
+
#: inc/custom-post-types/course.php:1355
|
3726 |
#, php-format
|
3727 |
msgctxt "learnpress"
|
3728 |
msgid "%d lesson"
|
3730 |
msgstr[0] ""
|
3731 |
msgstr[1] ""
|
3732 |
|
3733 |
+
#: inc/custom-post-types/course.php:1357
|
3734 |
msgid "0 lesson"
|
3735 |
msgstr ""
|
3736 |
|
3737 |
+
#: inc/custom-post-types/course.php:1361
|
3738 |
#, php-format
|
3739 |
msgctxt "learnpress"
|
3740 |
msgid "%d quiz"
|
3742 |
msgstr[0] ""
|
3743 |
msgstr[1] ""
|
3744 |
|
3745 |
+
#: inc/custom-post-types/course.php:1363
|
3746 |
msgid "0 quiz"
|
3747 |
msgstr ""
|
3748 |
|
3749 |
+
#: inc/custom-post-types/course.php:1368
|
3750 |
msgid "No content"
|
3751 |
msgstr ""
|
3752 |
|
3753 |
+
#: inc/custom-post-types/course.php:1528
|
3754 |
msgid "Course Video"
|
3755 |
msgstr ""
|
3756 |
|
3757 |
+
#: inc/custom-post-types/course.php:1533
|
3758 |
msgid "Video ID"
|
3759 |
msgstr ""
|
3760 |
|
3761 |
+
#: inc/custom-post-types/course.php:1536
|
3762 |
msgid "The id of Youtube or Vimeo video"
|
3763 |
msgstr ""
|
3764 |
|
3765 |
+
#: inc/custom-post-types/course.php:1540
|
3766 |
msgid "Video Type"
|
3767 |
msgstr ""
|
3768 |
|
3769 |
+
#: inc/custom-post-types/course.php:1543
|
3770 |
msgid "Chose video type"
|
3771 |
msgstr ""
|
3772 |
|
3773 |
+
#: inc/custom-post-types/course.php:1546
|
3774 |
msgid "Youtube"
|
3775 |
msgstr ""
|
3776 |
|
3777 |
+
#: inc/custom-post-types/course.php:1547
|
3778 |
msgid "Vimeo"
|
3779 |
msgstr ""
|
3780 |
|
3781 |
+
#: inc/custom-post-types/course.php:1551
|
3782 |
msgid "Embed width"
|
3783 |
msgstr ""
|
3784 |
|
3785 |
+
#: inc/custom-post-types/course.php:1554
|
3786 |
msgid "Set width of embed"
|
3787 |
msgstr ""
|
3788 |
|
3789 |
+
#: inc/custom-post-types/course.php:1558
|
3790 |
msgid "Embed height"
|
3791 |
msgstr ""
|
3792 |
|
3793 |
+
#: inc/custom-post-types/course.php:1561
|
3794 |
msgid "Set height of embed"
|
3795 |
msgstr ""
|
3796 |
|
3913 |
msgid "Add New Order"
|
3914 |
msgstr ""
|
3915 |
|
3916 |
+
#: inc/custom-post-types/order.php:416 inc/custom-post-types/order.php:506
|
3917 |
#: templates/order/order-details.php:13
|
3918 |
msgid "Order Details"
|
3919 |
msgstr ""
|
3934 |
msgid "No order found in Trash"
|
3935 |
msgstr ""
|
3936 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3937 |
#: inc/custom-post-types/order.php:507
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3938 |
msgid "Order Actions"
|
3939 |
msgstr ""
|
3940 |
|
4215 |
msgid "Your order {{order_number}} is completed"
|
4216 |
msgstr ""
|
4217 |
|
4218 |
+
#: inc/emails/class-lp-email.php:333
|
4219 |
msgid "Template file copied to theme."
|
4220 |
msgstr ""
|
4221 |
|
4222 |
+
#: inc/emails/class-lp-email.php:348
|
4223 |
msgid "Template file deleted from theme."
|
4224 |
msgstr ""
|
4225 |
|
4226 |
+
#: inc/emails/class-lp-email.php:552
|
4227 |
msgid "Could not write to template file."
|
4228 |
msgstr ""
|
4229 |
|
4256 |
msgid "Extensions"
|
4257 |
msgstr ""
|
4258 |
|
4259 |
+
#: inc/libraries/meta-box/inc/field.php:236
|
4260 |
msgid "+"
|
4261 |
msgstr ""
|
4262 |
|
4263 |
+
#: inc/libraries/meta-box/inc/field.php:245
|
4264 |
msgid "–"
|
4265 |
msgstr ""
|
4266 |
|
4422 |
msgid "Invalid order status"
|
4423 |
msgstr ""
|
4424 |
|
4425 |
+
#: inc/order/lp-order-functions.php:662
|
4426 |
msgctxt "Order status"
|
4427 |
msgid "Pending"
|
4428 |
msgstr ""
|
4429 |
|
4430 |
+
#: inc/order/lp-order-functions.php:663 inc/order/lp-order-functions.php:685
|
4431 |
+
msgctxt "Order status"
|
4432 |
+
msgid "Processing"
|
4433 |
+
msgstr ""
|
4434 |
+
|
4435 |
+
#: inc/order/lp-order-functions.php:664 inc/order/lp-order-functions.php:677
|
4436 |
+
msgctxt "Order status"
|
4437 |
+
msgid "Completed"
|
4438 |
+
msgstr ""
|
4439 |
+
|
4440 |
+
#: inc/order/lp-order-functions.php:665 inc/order/lp-order-functions.php:701
|
4441 |
+
msgctxt "Order status"
|
4442 |
+
msgid "Cancelled"
|
4443 |
+
msgstr ""
|
4444 |
+
|
4445 |
+
#: inc/order/lp-order-functions.php:682
|
4446 |
+
#, php-format
|
4447 |
+
msgid "Completed <span class=\"count\">(%s)</span>"
|
4448 |
+
msgid_plural "Completed <span class=\"count\">(%s)</span>"
|
4449 |
+
msgstr[0] ""
|
4450 |
+
msgstr[1] ""
|
4451 |
+
|
4452 |
+
#: inc/order/lp-order-functions.php:690
|
4453 |
+
#, php-format
|
4454 |
+
msgid "Processing <span class=\"count\">(%s)</span>"
|
4455 |
+
msgid_plural "Processing <span class=\"count\">(%s)</span>"
|
4456 |
+
msgstr[0] ""
|
4457 |
+
msgstr[1] ""
|
4458 |
+
|
4459 |
+
#: inc/order/lp-order-functions.php:693
|
4460 |
+
msgctxt "Order status"
|
4461 |
+
msgid "Pending Payment"
|
4462 |
+
msgstr ""
|
4463 |
+
|
4464 |
+
#: inc/order/lp-order-functions.php:698
|
4465 |
+
#, php-format
|
4466 |
+
msgid "Pending Payment <span class=\"count\">(%s)</span>"
|
4467 |
+
msgid_plural "Pending Payment <span class=\"count\">(%s)</span>"
|
4468 |
+
msgstr[0] ""
|
4469 |
+
msgstr[1] ""
|
4470 |
+
|
4471 |
+
#: inc/order/lp-order-functions.php:706
|
4472 |
+
#, php-format
|
4473 |
+
msgid "Cancelled <span class=\"count\">(%s)</span>"
|
4474 |
+
msgid_plural "Cancelled <span class=\"count\">(%s)</span>"
|
4475 |
+
msgstr[0] ""
|
4476 |
+
msgstr[1] ""
|
4477 |
+
|
4478 |
+
#: inc/order/lp-order-functions.php:738
|
4479 |
msgid ""
|
4480 |
"Order received in case user buy a course but doesn't finalise the order."
|
4481 |
msgstr ""
|
4482 |
|
4483 |
+
#: inc/order/lp-order-functions.php:739
|
4484 |
msgid "Payment received and the order is awaiting fulfillment."
|
4485 |
msgstr ""
|
4486 |
|
4487 |
+
#: inc/order/lp-order-functions.php:740
|
4488 |
msgid "Order fulfilled and complete."
|
4489 |
msgstr ""
|
4490 |
|
4491 |
+
#: inc/order/lp-order-functions.php:741
|
4492 |
msgid "The order is cancelled by an admin or the customer."
|
4493 |
msgstr ""
|
4494 |
|
4495 |
+
#: inc/order/lp-order-functions.php:784
|
4496 |
#, php-format
|
4497 |
msgid "You have enrolled in this course. <a href=\"%s\">Order details</a>"
|
4498 |
msgstr ""
|
4609 |
msgid "Retake quiz failed"
|
4610 |
msgstr ""
|
4611 |
|
4612 |
+
#: inc/quiz/class-lp-quiz-factory.php:371
|
4613 |
#, php-format
|
4614 |
msgid ""
|
4615 |
"Action %s failed! Please contact site's administrator for more information."
|
4712 |
msgid "Create quiz history need pass course ID"
|
4713 |
msgstr ""
|
4714 |
|
4715 |
+
#: inc/user/abstract-lp-user.php:1106 inc/user/abstract-lp-user.php:1420
|
4716 |
+
#: inc/user/abstract-lp-user.php:1432
|
4717 |
#, php-format
|
4718 |
msgid "The role %s for user doesn't exists"
|
4719 |
msgstr ""
|
4720 |
|
4721 |
+
#: inc/user/abstract-lp-user.php:1824
|
4722 |
msgid "You have already completed this lesson"
|
4723 |
msgstr ""
|
4724 |
|
4776 |
msgid "Profile picture is changed"
|
4777 |
msgstr ""
|
4778 |
|
4779 |
+
#: inc/user/lp-user-functions.php:787 inc/user/lp-user-functions.php:1195
|
4780 |
msgid "Old password incorrect!"
|
4781 |
msgstr ""
|
4782 |
|
4783 |
+
#: inc/user/lp-user-functions.php:800 inc/user/lp-user-functions.php:1201
|
4784 |
msgid "Confirmation password incorrect!"
|
4785 |
msgstr ""
|
4786 |
|
4787 |
+
#: inc/user/lp-user-functions.php:818 inc/user/lp-user-functions.php:1164
|
4788 |
msgid "Your change is saved"
|
4789 |
msgstr ""
|
4790 |
|
4791 |
+
#: inc/user/lp-user-functions.php:826 inc/user/lp-user-functions.php:1166
|
4792 |
msgid "Error on update your profile info"
|
4793 |
msgstr ""
|
4794 |
|
4795 |
+
#: inc/user/lp-user-functions.php:929
|
4796 |
msgid "Please login to enroll this course"
|
4797 |
msgstr ""
|
4798 |
|
4799 |
+
#: inc/user/lp-user-functions.php:947
|
4800 |
msgid "You have already finished course"
|
4801 |
msgstr ""
|
4802 |
|
4803 |
+
#: inc/user/lp-user-functions.php:950
|
4804 |
msgid "You have already enrolled in this course"
|
4805 |
msgstr ""
|
4806 |
|
4807 |
+
#: inc/user/lp-user-functions.php:1142
|
4808 |
msgid "Your avatar updated"
|
4809 |
msgstr ""
|
4810 |
|
4811 |
+
#: inc/user/lp-user-functions.php:1208
|
4812 |
msgid "Your password updated"
|
4813 |
msgstr ""
|
4814 |
|
4815 |
+
#: inc/user/lp-user-functions.php:1210
|
4816 |
msgid "Change your password failed"
|
4817 |
msgstr ""
|
4818 |
|
5134 |
msgid "This lesson has no content"
|
5135 |
msgstr ""
|
5136 |
|
5137 |
+
#: templates/content-lesson/__complete-button.php:66
|
5138 |
+
#: templates/single-course/content-item-lp_lesson.php:33
|
5139 |
+
msgid "Complete"
|
5140 |
+
msgstr ""
|
5141 |
+
|
5142 |
+
#: templates/content-lesson/__prev-button.php:11
|
5143 |
+
msgid "Prev"
|
5144 |
+
msgstr ""
|
5145 |
+
|
5146 |
#: templates/content-question/explanation.php:19
|
5147 |
msgid "Explanation:"
|
5148 |
msgstr ""
|
5376 |
msgid "Passing condition: %s%%"
|
5377 |
msgstr ""
|
5378 |
|
5379 |
+
#: templates/profile/tabs/edit/avatar.php:58
|
|
|
|
|
|
|
|
|
5380 |
msgid "Upload"
|
5381 |
msgstr ""
|
5382 |
|
5426 |
msgid "Enroll"
|
5427 |
msgstr ""
|
5428 |
|
5429 |
+
#: templates/single-course/buttons.php:27
|
5430 |
+
msgid ""
|
5431 |
+
"The class is full so the enrollment is close. Please contact the site admin."
|
5432 |
+
msgstr ""
|
5433 |
+
|
5434 |
+
#: templates/single-course/buttons.php:44
|
5435 |
#, php-format
|
5436 |
msgid "Retake course (+%d)"
|
5437 |
msgstr ""
|
5438 |
|
5439 |
+
#: templates/single-course/buttons.php:103
|
5440 |
msgid "You have purchased this course. Please wait for approval."
|
5441 |
msgstr ""
|
5442 |
|
5443 |
+
#: templates/single-course/buttons.php:105
|
5444 |
msgid "Sorry, you can not purchase this course"
|
5445 |
msgstr ""
|
5446 |
|
|
|
|
|
|
|
|
|
5447 |
#: templates/single-course/content-item-lp_quiz.php:55
|
5448 |
msgid "No questions"
|
5449 |
msgstr ""
|
learnpress.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: LearnPress
|
|
4 |
Plugin URI: http://thimpress.com/learnpress
|
5 |
Description: LearnPress is a WordPress complete solution for creating a Learning Management System (LMS). It can help you to create courses, lessons and quizzes.
|
6 |
Author: ThimPress
|
7 |
-
Version: 2.1.
|
8 |
Author URI: http://thimpress.com
|
9 |
Requires at least: 3.8
|
10 |
Tested up to: 4.7
|
@@ -118,8 +118,7 @@ if ( !class_exists( 'LearnPress' ) ) {
|
|
118 |
$this->includes();
|
119 |
// hooks
|
120 |
$this->init_hooks();
|
121 |
-
|
122 |
-
do_action( 'learn_press_ready' );
|
123 |
}
|
124 |
|
125 |
public function __get( $key ) {
|
@@ -211,8 +210,8 @@ if ( !class_exists( 'LearnPress' ) ) {
|
|
211 |
// Register custom-post-type and taxonomies
|
212 |
require_once 'inc/custom-post-types/abstract.php';
|
213 |
require_once 'inc/custom-post-types/course.php';
|
214 |
-
|
215 |
-
|
216 |
require_once 'inc/custom-post-types/question.php';
|
217 |
require_once 'inc/custom-post-types/order.php';
|
218 |
}
|
@@ -246,6 +245,8 @@ if ( !class_exists( 'LearnPress' ) ) {
|
|
246 |
}
|
247 |
|
248 |
public function loaded() {
|
|
|
|
|
249 |
do_action( 'learn_press_loaded', $this );
|
250 |
}
|
251 |
|
@@ -253,10 +254,7 @@ if ( !class_exists( 'LearnPress' ) ) {
|
|
253 |
* Load metabox library
|
254 |
*/
|
255 |
public function load_meta_box() {
|
256 |
-
|
257 |
-
require_once 'inc/libraries/meta-box/meta-box.php';
|
258 |
-
do_action( 'learn_press_meta_box_loaded' );
|
259 |
-
}
|
260 |
}
|
261 |
|
262 |
/**
|
@@ -394,7 +392,7 @@ if ( !class_exists( 'LearnPress' ) ) {
|
|
394 |
case 'frontend' :
|
395 |
return ( !is_admin() || defined( 'LP_DOING_AJAX' ) ) && !defined( 'DOING_CRON' );
|
396 |
default:
|
397 |
-
return strtolower($_SERVER['REQUEST_METHOD']) == $type;
|
398 |
}
|
399 |
}
|
400 |
|
@@ -689,4 +687,4 @@ function load_learn_press() {
|
|
689 |
* Done! entry point of the plugin
|
690 |
* Create new instance of LearnPress and put it to global
|
691 |
*/
|
692 |
-
$GLOBALS['LearnPress'] = LP();
|
4 |
Plugin URI: http://thimpress.com/learnpress
|
5 |
Description: LearnPress is a WordPress complete solution for creating a Learning Management System (LMS). It can help you to create courses, lessons and quizzes.
|
6 |
Author: ThimPress
|
7 |
+
Version: 2.1.2
|
8 |
Author URI: http://thimpress.com
|
9 |
Requires at least: 3.8
|
10 |
Tested up to: 4.7
|
118 |
$this->includes();
|
119 |
// hooks
|
120 |
$this->init_hooks();
|
121 |
+
|
|
|
122 |
}
|
123 |
|
124 |
public function __get( $key ) {
|
210 |
// Register custom-post-type and taxonomies
|
211 |
require_once 'inc/custom-post-types/abstract.php';
|
212 |
require_once 'inc/custom-post-types/course.php';
|
213 |
+
require_once 'inc/custom-post-types/lesson.php';
|
214 |
+
require_once 'inc/custom-post-types/quiz.php';
|
215 |
require_once 'inc/custom-post-types/question.php';
|
216 |
require_once 'inc/custom-post-types/order.php';
|
217 |
}
|
245 |
}
|
246 |
|
247 |
public function loaded() {
|
248 |
+
// let third parties know that we're ready
|
249 |
+
do_action( 'learn_press_ready' );
|
250 |
do_action( 'learn_press_loaded', $this );
|
251 |
}
|
252 |
|
254 |
* Load metabox library
|
255 |
*/
|
256 |
public function load_meta_box() {
|
257 |
+
require_once 'inc/libraries/meta-box/meta-box.php';
|
|
|
|
|
|
|
258 |
}
|
259 |
|
260 |
/**
|
392 |
case 'frontend' :
|
393 |
return ( !is_admin() || defined( 'LP_DOING_AJAX' ) ) && !defined( 'DOING_CRON' );
|
394 |
default:
|
395 |
+
return strtolower( $_SERVER['REQUEST_METHOD'] ) == $type;
|
396 |
}
|
397 |
}
|
398 |
|
687 |
* Done! entry point of the plugin
|
688 |
* Create new instance of LearnPress and put it to global
|
689 |
*/
|
690 |
+
$GLOBALS['LearnPress'] = LP();
|
readme.txt
CHANGED
@@ -4,7 +4,7 @@ Donate link:
|
|
4 |
Tags: WordPress LMS, LMS, eLearning, e-Learning, Learning Management System, LMS WordPress, Course, Courses, Quiz, Quizzes, Training, Guru, Sell Courses
|
5 |
Requires at least: 3.8
|
6 |
Tested up to: 4.7
|
7 |
-
Stable tag:
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
@@ -22,7 +22,7 @@ LearnPress is free and always be free, but it has premium high quality WordPress
|
|
22 |
|
23 |
> Or you can [buy Education WP theme](http://themeforest.net/item/education-wordpress-theme-education-wp/14058034?utm_source=wporg&utm_medium=learnpressDC&ref=thimpress&utm_campaign=learnpress) for only 64$ and get all of them.
|
24 |
|
25 |
-
> **HOT!!** [WordPress theme for Coaches, Trainers, Teachers - Coaching WP](https://themeforest.net/item/speaker-and-life-coach-wordpress-theme-coaching-wp/17097658?utm_source=wporg&utm_medium=learnpressDC&ref=thimpress&utm_campaign=learnpress) is also FOR SALE at only $
|
26 |
|
27 |
###LMS & Education WordPress Themes###
|
28 |
|
@@ -193,6 +193,16 @@ https://www.transifex.com/projects/p/learnpress/
|
|
193 |
8. Add-ons of LearnPress.
|
194 |
|
195 |
== Changelog ==
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
196 |
= 2.1.1 =
|
197 |
+ Added options to change value of lessons/quizzes in course item permalink
|
198 |
+ Improved edit profile page
|
4 |
Tags: WordPress LMS, LMS, eLearning, e-Learning, Learning Management System, LMS WordPress, Course, Courses, Quiz, Quizzes, Training, Guru, Sell Courses
|
5 |
Requires at least: 3.8
|
6 |
Tested up to: 4.7
|
7 |
+
Stable tag: trunk
|
8 |
License: GPLv2 or later
|
9 |
License URI: http://www.gnu.org/licenses/gpl-2.0.html
|
10 |
|
22 |
|
23 |
> Or you can [buy Education WP theme](http://themeforest.net/item/education-wordpress-theme-education-wp/14058034?utm_source=wporg&utm_medium=learnpressDC&ref=thimpress&utm_campaign=learnpress) for only 64$ and get all of them.
|
24 |
|
25 |
+
> **HOT!!** [WordPress theme for Coaches, Trainers, Teachers - Coaching WP](https://themeforest.net/item/speaker-and-life-coach-wordpress-theme-coaching-wp/17097658?utm_source=wporg&utm_medium=learnpressDC&ref=thimpress&utm_campaign=learnpress) is also FOR SALE at only $39, LearnPress included.
|
26 |
|
27 |
###LMS & Education WordPress Themes###
|
28 |
|
193 |
8. Add-ons of LearnPress.
|
194 |
|
195 |
== Changelog ==
|
196 |
+
= 2.1.2 =
|
197 |
+
+ Fixed Assign course's items to user when assigning course
|
198 |
+
+ Fixed Options to change key 'lessons' and 'quizzes' when viewing a lesson/quiz in a course.
|
199 |
+
+ Fixed Course pagination issue in some case
|
200 |
+
+ Fixed Can not add to cart for non-loggedin user (woocommerce addon)
|
201 |
+
+ Fixed Broken cert when previewing to print in single course (Certificate)
|
202 |
+
+ Fixed Paid memberships show user as deleted after buying course (Paid membership)
|
203 |
+
+ Fixed overwrite templates issue (Paid membership)
|
204 |
+
+ Fixed "page isn’t working" when creating a new post type (conflict with metabox in the-7 theme)
|
205 |
+
|
206 |
= 2.1.1 =
|
207 |
+ Added options to change value of lessons/quizzes in course item permalink
|
208 |
+ Improved edit profile page
|
templates/single-course/buttons.php
CHANGED
@@ -1,106 +1,111 @@
|
|
1 |
-
<?php
|
2 |
-
/**
|
3 |
-
* Template for displaying the enroll button
|
4 |
-
*
|
5 |
-
* @author ThimPress
|
6 |
-
* @package LearnPress/Templates
|
7 |
-
* @version 2.0.6
|
8 |
-
*/
|
9 |
-
|
10 |
-
if ( !defined( 'ABSPATH' ) ) {
|
11 |
-
exit; // Exit if accessed directly
|
12 |
-
}
|
13 |
-
|
14 |
-
$course = LP()->global['course'];
|
15 |
-
|
16 |
-
if ( !$course->is_required_enroll() ) {
|
17 |
-
return;
|
18 |
-
}
|
19 |
-
|
20 |
-
$course_status = learn_press_get_user_course_status();
|
21 |
-
$user = learn_press_get_current_user();
|
22 |
-
$in_cart = learn_press_is_added_to_cart( $course->id );
|
23 |
-
// only show enroll button if user had not enrolled
|
24 |
-
$purchase_button_text
|
25 |
-
$enroll_button_text
|
26 |
-
$retake_button_text
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
#
|
36 |
-
#
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
<?php
|
47 |
-
|
48 |
-
|
49 |
-
#
|
50 |
-
#
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
|
82 |
-
|
83 |
-
|
84 |
-
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
|
|
|
|
|
|
|
|
|
|
106 |
</div>
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Template for displaying the enroll button
|
4 |
+
*
|
5 |
+
* @author ThimPress
|
6 |
+
* @package LearnPress/Templates
|
7 |
+
* @version 2.0.6
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( !defined( 'ABSPATH' ) ) {
|
11 |
+
exit; // Exit if accessed directly
|
12 |
+
}
|
13 |
+
|
14 |
+
$course = LP()->global['course'];
|
15 |
+
|
16 |
+
if ( !$course->is_required_enroll() ) {
|
17 |
+
return;
|
18 |
+
}
|
19 |
+
|
20 |
+
$course_status = learn_press_get_user_course_status();
|
21 |
+
$user = learn_press_get_current_user();
|
22 |
+
$in_cart = learn_press_is_added_to_cart( $course->id );
|
23 |
+
// only show enroll button if user had not enrolled
|
24 |
+
$purchase_button_text = apply_filters( 'learn_press_purchase_button_text', __( 'Buy this course', 'learnpress' ) );
|
25 |
+
$enroll_button_text = apply_filters( 'learn_press_enroll_button_text', __( 'Enroll', 'learnpress' ) );
|
26 |
+
$retake_button_text = apply_filters( 'learn_press_retake_button_text', __( 'Retake', 'learnpress' ) );
|
27 |
+
$notice_enough_student = apply_filters( 'learn_press_course enough students_notice', __( 'The class is full so the enrollment is close. Please contact the site admin.', 'learnpress' ) );
|
28 |
+
?>
|
29 |
+
<div class="learn-press-course-buttons">
|
30 |
+
|
31 |
+
<?php do_action( 'learn_press_before_course_buttons', $course->id ); ?>
|
32 |
+
|
33 |
+
<?php
|
34 |
+
|
35 |
+
# -------------------------------
|
36 |
+
# Finished Course
|
37 |
+
# -------------------------------
|
38 |
+
if ( $user->has( 'finished-course', $course->id ) ): ?>
|
39 |
+
<?php if ( $count = $user->can( 'retake-course', $course->id ) ): ?>
|
40 |
+
<button
|
41 |
+
class="button button-retake-course"
|
42 |
+
data-course_id="<?php echo esc_attr( $course->id ); ?>"
|
43 |
+
data-security="<?php echo esc_attr( wp_create_nonce( sprintf( 'learn-press-retake-course-%d-%d', $course->id, $user->id ) ) ); ?>">
|
44 |
+
<?php echo esc_html( sprintf( __( 'Retake course (+%d)', 'learnpress' ), $count ) ); ?>
|
45 |
+
</button>
|
46 |
+
<?php endif; ?>
|
47 |
+
<?php
|
48 |
+
|
49 |
+
# -------------------------------
|
50 |
+
# Enrolled Course
|
51 |
+
# -------------------------------
|
52 |
+
elseif ( $user->has( 'enrolled-course', $course->id ) ): ?>
|
53 |
+
<?php
|
54 |
+
$can_finish = $user->can_finish_course( $course->id );
|
55 |
+
//if ( $can_finish ) {
|
56 |
+
$finish_course_security = wp_create_nonce( sprintf( 'learn-press-finish-course-' . $course->id . '-' . $user->id ) );
|
57 |
+
//} else {
|
58 |
+
//$finish_course_security = '';
|
59 |
+
//}
|
60 |
+
?>
|
61 |
+
<button
|
62 |
+
id="learn-press-finish-course"
|
63 |
+
class="button-finish-course<?php echo !$can_finish ? ' hide-if-js' : ''; ?>"
|
64 |
+
data-id="<?php echo esc_attr( $course->id ); ?>"
|
65 |
+
data-security="<?php echo esc_attr( $finish_course_security ); ?>">
|
66 |
+
<?php esc_html_e( 'Finish course', 'learnpress' ); ?>
|
67 |
+
</button>
|
68 |
+
<?php elseif ( $user->can( 'enroll-course', $course->id ) === true ) : ?>
|
69 |
+
<form name="enroll-course" class="enroll-course" method="post" enctype="multipart/form-data">
|
70 |
+
<?php do_action( 'learn_press_before_enroll_button' ); ?>
|
71 |
+
|
72 |
+
<input type="hidden" name="lp-ajax" value="enroll-course" />
|
73 |
+
<input type="hidden" name="enroll-course" value="<?php echo $course->id; ?>" />
|
74 |
+
<button class="button enroll-button" data-block-content="yes"><?php echo $enroll_button_text; ?></button>
|
75 |
+
|
76 |
+
<?php do_action( 'learn_press_after_enroll_button' ); ?>
|
77 |
+
</form>
|
78 |
+
<?php elseif ( $user->can( 'purchase-course', $course->id ) ) : ?>
|
79 |
+
<form name="purchase-course" class="purchase-course" method="post" enctype="multipart/form-data">
|
80 |
+
<?php do_action( 'learn_press_before_purchase_button' ); ?>
|
81 |
+
<button class="button purchase-button" data-block-content="yes">
|
82 |
+
<?php echo $course->is_free() ? $enroll_button_text : $purchase_button_text; ?>
|
83 |
+
</button>
|
84 |
+
<?php do_action( 'learn_press_after_purchase_button' ); ?>
|
85 |
+
<input type="hidden" name="purchase-course" value="<?php echo $course->id; ?>" />
|
86 |
+
</form>
|
87 |
+
|
88 |
+
<?php elseif ( $user->can( 'enroll-course', $course->id ) === 'enough' ) : ?>
|
89 |
+
<p class="learn-press-message"><?php echo $notice_enough_student; ?></p>
|
90 |
+
|
91 |
+
<?php else: ?>
|
92 |
+
<?php $order_status = $user->get_order_status( $course->id ); ?>
|
93 |
+
<?php if ( in_array( $order_status, array( 'lp-pending', 'lp-refunded', 'lp-cancelled', 'lp-failed' ) ) ) { ?>
|
94 |
+
<form name="purchase-course" class="purchase-course" method="post" enctype="multipart/form-data">
|
95 |
+
<?php do_action( 'learn_press_before_purchase_button' ); ?>
|
96 |
+
<button class="button purchase-button" data-block-content="yes">
|
97 |
+
<?php echo $course->is_free() ? $enroll_button_text : $purchase_button_text; ?>
|
98 |
+
</button>
|
99 |
+
<?php do_action( 'learn_press_after_purchase_button' ); ?>
|
100 |
+
<input type="hidden" name="purchase-course" value="<?php echo $course->id; ?>" />
|
101 |
+
</form>
|
102 |
+
<?php } elseif ( in_array( $order_status, array( 'lp-processing', 'lp-on-hold' ) ) ) { ?>
|
103 |
+
<?php learn_press_display_message( '<p>' . apply_filters( 'learn_press_user_course_pending_message', __( 'You have purchased this course. Please wait for approval.', 'learnpress' ), $course, $user ) . '</p>' ); ?>
|
104 |
+
<?php } elseif ( $order_status && $order_status != 'lp-completed' ) { ?>
|
105 |
+
<?php learn_press_display_message( '<p>' . apply_filters( 'learn_press_user_can_not_purchase_course_message', __( 'Sorry, you can not purchase this course', 'learnpress' ), $course, $user ) . '</p>' ); ?>
|
106 |
+
<?php } ?>
|
107 |
+
<?php endif; ?>
|
108 |
+
|
109 |
+
<?php do_action( 'learn_press_after_course_buttons', $course->id ); ?>
|
110 |
+
|
111 |
</div>
|