Viewing File: /home/rtsgrob/ww3/wp-content/plugins/tutor-lms-certificate-builder/src/ProIntegration.php
<?php
/**
* Integrate templates to certificate addon
*
* @package Tutor\Certificate\Builder
* @author Themeum <support@themeum.com>
* @license GPLv2 or later
* @link https://www.themeum.com/product/tutor-lms/
* @since 1.0.0
*/
namespace Tutor\Certificate\Builder;
use \Tutor\Certificate\Builder\Utils;
class ProIntegration {
function __construct() {
add_filter( 'tutor_certificate_templates', array( $this, 'register_certificate' ), 10, 3 );
add_filter( 'tutor_certificate_builder_url', array( $this, 'certificate_builder_url' ), 10, 2 );
/**
* Certificate builder support for frontend dashboard
*
* @since v2.0.0
*/
add_filter( 'tutor_dashboard/instructor_nav_items', array( $this, 'frontend_dashboard_nav_items' ) );
add_filter( 'load_dashboard_template_part_from_other_location', array( $this, 'tutor_certificate_frontend' ) );
add_filter( 'tutor/options/extend/attr', array( $this, 'setting_page_content' ), 11 );
add_filter( 'tutor/options/extend/attr', array( $this, 'settings_filed' ), 11 );
}
public function register_certificate( $templates, $include_admins = false, $template_in = array() ) {
$builder_templates = array();
$certificates = ( new Utils() )->get_certificates( 1, -1, null, 'publish', false, $include_admins, $template_in );
foreach ( $certificates as $certificate ) {
$builder_templates[ 'tutor_cb_' . $certificate->ID ] = array(
'name' => $certificate->post_title,
'orientation' => get_post_meta( $certificate->ID, 'tutor_certificate_dimension', true ),
'path' => '',
'url' => '',
'edit_url' => $this->certificate_builder_url( $certificate->ID ),
'preview_src' => $certificate->thumbnail_url,
'background_src' => '',
'author_id' => $certificate->post_author,
);
}
return array_merge( $builder_templates, $templates );
}
public function certificate_builder_url( $id = null, $additional = array() ) {
return Helper::certificate_builder_url( $id, $additional );
}
public function frontend_dashboard_nav_items( $nav_items ) {
$nav_items['certificate-builder'] = array(
'title' => __( 'Certificate', 'tutor-pro' ),
'icon' => 'tutor-icon-certificate-landscape',
'auth_cap' => tutor()->instructor_role,
);
return $nav_items;
}
public function tutor_certificate_frontend( $template ) {
global $wp_query;
$query_vars = $wp_query->query_vars;
if ( $query_vars['tutor_dashboard_page'] && $query_vars['tutor_dashboard_page'] === 'certificate-builder' ) {
$new_template = TUTOR_CB_PLUGIN_PATH . 'templates/certificate-list-table.php';
if ( file_exists( $new_template ) ) {
return apply_filters( 'tutor_frontend_certificate_template', $new_template );
}
}
return $template;
}
public function setting_page_content( $attr ) {
if ( ! isset( $attr['tutor_certificate'] ) ) {
return $attr;
}
array_unshift(
$attr['tutor_certificate']['blocks'],
array(
'label' => null,
'slug' => 'certificate_add',
'block_type' => 'custom',
'placement' => 'before',
'template_path' => TUTOR_CB_PLUGIN_PATH . 'templates/add-certificate-area.php',
),
array(
'label' => __( 'All Certificates', 'tutor-lms-certificate-builder' ),
'slug' => 'certificate_list',
'block_type' => 'custom',
'template_path' => TUTOR_CB_PLUGIN_PATH . 'templates/certificate-list-table.php',
)
);
return $attr;
}
public function settings_filed( $attr ) {
if ( function_exists( 'TUTOR_CERT' ) && tutor_utils()->is_addon_enabled( TUTOR_CERT()->basename ) ) {
array_unshift(
$attr['tutor_certificate']['blocks'][2]['segments'],
array(
'label' => __( 'Settings for Certificates made by Certificate Builder', 'tutor-pro' ),
'slug' => 'certificate_settings',
'block_type' => 'uniform',
'fields' => array(
array(
'key' => 'instructor_can_use_admin_cert_template',
'type' => 'toggle_switch',
'label' => __( 'Allow Instructors To Use templates built by admin', 'tutor' ),
'label_title' => __( '', 'tutor' ),
'default' => 'off',
'desc' => __( 'Enable instructors to use certificate templates built by admin. If disabled, instructors will be able to use only their own templates.', 'tutor-lms-certificate-builder' ),
),
),
)
);
}
return $attr;
}
}
Back to Directory
File Manager