WPLMS Batches
WPLMS Batches is an add-on for sub grouping of students in courses.
Last updated
WPLMS Batches is an add-on for sub grouping of students in courses.
Last updated
Purchase Link: https://wplms.io/downloads/wplms-batches/
Add this code in wp-admin > WPLMS > Plugins > Editor > WPLMS Customizer plugin > wplms-customizer.php
add_action('wplms_after_course_description',function(){
$id = get_the_ID(); $batches = wplms_get_course_batches($id); if(empty($batches))
return; $init=Wplms_Batches_Init::init(); $init->show_enroll_button = 1;
?>
<div class="wplms_batches_wrapper block">
<ul>
<?php
foreach($batches as $batch_id){
$init->batch_grid_style('custom',$batch_id);
}
?>
</ul>
</div><style>.wplms_batches_wrapper ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:1rem}.wplms_batches_wrapper .batch_snapshot{display:flex;flex-direction:row;border:1px solid var(--border);padding:.5rem;position:relative;flex-wrap:wrap;align-items: flex-start}.batch_snapshot .labels{position:absolute;top:.5rem;left:.5rem;z-index:9;background:var(--primary);color:var(--primarycolor);padding:2px 5px;border-radius:2px;display:flex;flex-wrap:wrap}.batch_snapshot .labels>span{text-transform:uppercase;font-size:11px;letter-spacing:1px}.batch_snapshot .batch_image img{border-radius:3px}.batch_image{position:relative;margin:.5rem;flex:1 0 120px}.batch_admins{position:absolute;bottom:.5rem;right:.5rem}.batch_admins img{width:32px;height:32px;border-radius:50%}.batch_content{margin:.5rem;flex:3 0 120px}</style>
<?php ?><script>
if(typeof localforage != 'undefined'){
localforage.getItem('bp_login_token').then(function(token){ function sendEnrollBatchRequest(batch_id){ var xh = new XMLHttpRequest();
xh.open('POST', ajaxurl);
xh.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xh.onload = function() {
if (xh.status === 200) {
let data = JSON.parse(xh.responseText);
if(typeof data == 'object' && data.status){
document.querySelectorAll('.enrol_in_batch').forEach(function(el){
el.parentNode.removeChild(el);
});
var span = document.createElement('span');
span.innerHTML = "<?php _e('Enrolled','wplms-batches');?>";
document.querySelector('#batch'+batch_id+' .labels').appendChild(span);
}
}else if (xhr.status !== 200) {
console.log('Something went wrong.Request failed.' + xhr.status);
}
}
xh.send(encodeURI('action=enrol_in_batch&batch_id='+batch_id+'&course_id=<?php echo $id; ?>+&token=' + token));
} if(token){
var xhr = new XMLHttpRequest();
xhr.open('POST', ajaxurl);
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
if (xhr.status === 200) {
let data = JSON.parse(xhr.responseText);
if(typeof data == 'object' && data.status){
if(data.enrolled && data.enrolled.length){
data.enrolled.map(function(batch_id){
var span = document.createElement('span');
span.innerHTML = "<?php _e('Enrolled','wplms-batches');?>";
document.querySelector('#batch'+batch_id+' .labels').appendChild(span);
});
}else{ document.querySelectorAll('.batch_content').forEach(function(el){
var btn = document.createElement('a');
btn.innerHTML = "<?php _e('Enrol Now','wplms-batches');?>";
btn.setAttribute('class','enrol_in_batch button is-primary small');
if(data.hasOwnProperty('cart_links') && Object.keys(data.cart_links).length){
if(data.cart_links.hasOwnProperty(el.getAttribute('data-id')) && data.cart_links[el.getAttribute('data-id')].length){
btn.setAttribute('href',data.cart_links[el.getAttribute('data-id')]);
} }else{
btn.addEventListener('click',function(){
btn.innerHTML='...';
document.querySelectorAll('.enrol_in_batch').forEach(function(el){
if(btn != el){
el.style.display='none';
}
}); sendEnrollBatchRequest(el.getAttribute('data-id'));
});
} if(el.querySelector('.enroll_now_button')){
el.querySelector('.enroll_now_button').remove();
} el.appendChild(btn);
}); }
} }
else if (xhr.status !== 200) {
console.log('Something went wrong.Request failed.' + xhr.status); }
}; xhr.send(encodeURI('action=get_enrolled_batches&course_id=<?php echo $id; ?>&batches='+JSON.stringify(<?php echo json_encode($batches); ?>)+'&token=' + token) );
} });
}
</script><?php
});