Current File : /home/kelaby89/abl.academy/wp-content/plugins/learnpress-certificates/inc/load.php |
<?php
use LearnPress\Certificates\DownloadFontGoogle;
const LP_ADDON_CERTIFICATES_CERT_CPT = 'lp_cert';
const LP_ADDON_CERTIFICATES_USER_CERT_CPT = 'lp_user_cert';
define( 'LP_ADDON_CERTIFICATES_PATH', dirname( LP_ADDON_CERTIFICATES_FILE ) );
const LP_ADDON_CERTIFICATES_TEMPLATE_DEFAULT = LP_ADDON_CERTIFICATES_PATH . DIRECTORY_SEPARATOR . 'templates' . DIRECTORY_SEPARATOR;
/**
* Class LP_Addon_Certificates
*/
class LP_Addon_Certificates extends LP_Addon {
/**
* @var string
*/
public $version = LP_ADDON_CERTIFICATES_VER;
/**
* @var string
*
* LP Version
*/
public $require_version = LP_ADDON_CERTIFICATES_VER;
/**
* Path file addon.
*
* @var string
*/
public $plugin_file = LP_ADDON_CERTIFICATES_FILE;
public static $_PATH_FONTS = '';
/**
* LP_Addon_Gradebook constructor.
*/
public function __construct() {
parent::__construct();
$this->_maybe_upgrade_data();
LP_Request::register_ajax( 'cert-update-layer', array( $this, 'update_layer' ) );
LP_Request::register_ajax( 'cert-update-layers', array( $this, 'update_layers' ) );
LP_Request::register_ajax( 'cert-load-layer', array( $this, 'load_layer' ) );
LP_Request::register_ajax( 'cert-remove-layer', array( $this, 'remove_layer' ) );
LP_Request::register_ajax( 'cert-update-template', array( $this, 'update_template' ) );
add_action( 'learn-press/rewrite/tags', array( $this, 'add_rewrite_tags' ) );
add_filter( 'learn-press/rewrite/rules', array( $this, 'add_rewrite_rules' ), 1 );
add_action( 'admin_enqueue_scripts', array( $this, 'add_script_data' ) );
add_action( 'wp_enqueue_scripts', array( $this, 'wp_scripts' ) );
add_action( 'template_include', array( $this, 'show_cert' ) );
add_action( 'admin_head', array( $this, 'header_google_fonts' ) );
//add_action( 'wp_head', array( $this, 'header_google_fonts' ) );
add_action( 'wp_footer', array( $this, 'show_certificate_popup' ) );
add_action( 'learn-press/user-course-finished', array( $this, 'update_user_certificate' ), 10, 3 );
add_action( 'learn-press/update-settings/updated', array( $this, 'save_data_gg_fonts' ), 10, 1 );
$this->add_class_template_certificate(); // It required for call LearnPress::instance()->template( 'certificate' );
add_action( 'learn-press/course-buttons', LearnPress::instance()->template( 'certificate' )->func( 'button_certificate' ), 10 );
add_action( 'learnpress/addons/frontend_editor/enqueue_scripts', array( $this, 'admin_react_scripts' ) );
add_action( 'learnpress_upsell/admin_enqueue_scripts', array( $this, 'admin_react_scripts' ) ); // for upsell
// Filters
add_filter( 'learn-press/profile-tabs', array( $this, 'profile_tabs' ) );
add_filter( 'learn-press/admin/settings-tabs-array', array( $this, 'admin_settings' ) );
// create folder learn-press-cert fonts
$uploads = wp_upload_dir();
$cert_dir = $uploads['basedir'] . DIRECTORY_SEPARATOR . 'learn-press-cert' . DIRECTORY_SEPARATOR . 'fonts' . DIRECTORY_SEPARATOR;
if ( ! file_exists( $cert_dir ) ) {
wp_mkdir_p( $cert_dir );
}
self::$_PATH_FONTS = $cert_dir;
}
public function admin_react_scripts() {
wp_enqueue_script( 'fabric' );
wp_enqueue_script( 'certificates-js' );
$localize_cer = array(
'base_url' => home_url(),
'url_upload_cert' => home_url( 'upload' ),
'url_ajax' => admin_url( 'admin-ajax.php' ),
);
wp_localize_script( 'certificates-js', 'localize_lp_cer_js', $localize_cer );
}
/**
* Add to call LearnPress::instance()->template( 'certificate' )
*
* @return void
* @author Nhamdv <[email protected]>
*/
public function add_class_template_certificate() {
if ( class_exists( 'LP_Template' ) ) {
$lp_template = LP_Template::instance();
if ( ! in_array( 'certificate', $lp_template->templates, true ) ) {
$lp_template->templates['certificate'] = include_once LP_ADDON_CERTIFICATES_PATH . '/inc/class-lp-template-certificate.php';
}
}
}
protected function _maybe_upgrade_data() {
if ( ! ( version_compare( LP_ADDON_CERTIFICATES_VER, '3.0.0', '=' ) &&
version_compare( get_option( 'certificates_db_version' ), '3.0.0', '<' ) ) ) {
return;
}
global $wpdb;
$query = $wpdb->prepare(
"
SELECT meta_id AS id, meta_value AS layers
FROM {$wpdb->postmeta}
WHERE meta_key = %s
",
'_lp_cert_layers'
);
$certs = $wpdb->get_results( $query );
if ( ! $certs ) {
return;
}
$queue_items = array();
foreach ( $certs as $cert ) {
$layers = maybe_unserialize( $cert->layers );
if ( ! $layers ) {
continue;
}
foreach ( $layers as $k => $layer ) {
settype( $layer, 'array' );
if ( ! array_key_exists( 'variable', $layer ) ) {
$layer['variable'] = $layer['text'];
}
$layers[ $k ] = $layer;
}
$wpdb->update(
$wpdb->postmeta,
array( 'meta_value' => serialize( $layers ) ),
array( 'meta_id' => $cert->id ),
array( '%s' ),
array( '%d' )
);
}
}
public function show_certificate_popup() {
$user_id = get_current_user_id();
if ( learn_press_is_course() ) {
$course_id = get_the_ID();
$setting_show_cer_popup = LearnPress::instance()->settings()->get( 'lp_cer_show_popup', 'yes' );
$cert_id = LP_Certificate::get_course_certificate( $course_id );
if ( $cert_id ) {
$cert_key = LP_Certificate::get_cert_key( $user_id, $course_id, 0, false );
if ( $cert_key ) {
$certificate = LP_Certificate::get_cert_by_key( $cert_key );
if ( is_a( $certificate, 'LP_User_Certificate' ) ) {
$can_get_certificate = LP_Certificate::can_get_certificate( $course_id, $user_id );
if ( $setting_show_cer_popup == 'yes' && $can_get_certificate['flag'] ) {
if ( get_transient( 'lp-show-certificate-' . $user_id . '-' . $course_id ) ) {
delete_transient( 'lp-show-certificate-' . $user_id . '-' . $course_id );
echo '<input name="f_auto_show_cer_popup_first" value="1">';
}
LP_Addon_Certificates_Preload::$addon->get_template( 'popup.php', compact( 'certificate' ) );
}
}
}
}
}
}
/**
* Update certificate data when user finished course
*
* @param int $course_id
* @param int $user_id
* @param int $course_item
*/
public function update_user_certificate( $course_id, $user_id, $course_item ) {
$cert_id = LP_Certificate::get_course_certificate( $course_id );
if ( $cert_id ) {
$key = LP_Certificate::get_cert_key( $user_id, $course_id, $cert_id, false );
set_transient( 'lp-show-certificate-' . $user_id . '-' . $course_id, $key );
}
}
public function admin_settings( $tabs ) {
$tabs['certificates'] = include_once LP_ADDON_CERTIFICATES_PATH . '/inc/class-lp-certificate-settings.php';
return $tabs;
}
public function show_cert( $template ) {
global $wp;
$rewrite_rules = new WP_Rewrite();
$match_rules = $rewrite_rules->rewrite_rules();
if ( ! empty( $wp->query_vars['view-cert'] ) ) {
$cert = LP_Certificate::get_cert_by_key( $wp->query_vars['view-cert'] );
if ( $cert ) {
LP_Addon_Certificates_Preload::$addon->get_template( 'single-certificate.php', compact( 'cert' ) );
die();
}
learn_press_404_page();
}
return $template;
}
/**
* Register tab with Profile
*/
public function profile_tabs( $tabs ) {
$tabs['certificates'] = array(
'title' => esc_html__( 'Certificates', 'learnpress-certificates' ),
'slug' => LearnPress::instance()->settings()->get( 'lp_cert_slug', 'certificates' ),
'callback' => array( $this, 'profile_certificates' ),
'icon' => '<i class="fas fa-certificate"></i>',
'priority' => 12,
);
return $tabs;
}
public function profile_certificates() {
$profile = learn_press_get_profile();
global $wp;
if ( ! empty( $wp->query_vars['act'] ) && ! empty( $wp->query_vars['cert-id'] ) ) {
$key = $wp->query_vars['cert-id'];
$certificate = LP_Certificate::get_cert_by_key( $key );
if ( $certificate ) {
if ( $certificate->get_id() ) {
LP_Addon_Certificates_Preload::$addon->get_template( 'details.php', array( 'certificate' => $certificate ) );
}
}
} else { ?>
<h3 class="profile-heading"><?php esc_html_e( 'Certificates', 'learnpress-certificates' ); ?></h3>
<div class="learnpress-certificates-profile">
<input type="hidden" name="userID" value="<?php echo $profile->get_user()->get_id(); ?>">
<ul class="lp-skeleton-animation">
<li style="width: 100%; height: 20px"></li>
<li style="width: 100%; height: 20px"></li>
<li style="width: 100%; height: 20px"></li>
<li style="width: 100%; height: 20px"></li>
<li style="width: 100%; height: 20px"></li>
<li style="width: 100%; height: 20px"></li>
<li style="width: 100%; height: 20px"></li>
</ul>
</div>
<?php
//$certificates = LP_Certificate::get_user_certificates( $profile->get_user()->get_id() );
//LP_Addon_Certificates_Preload::$addon->get_template( 'list-certificates.php', array( 'certificates' => $certificates ) );
}
}
public function remove_layer() {
$id = LP_Request::get_int( 'id' );
$certificate = new LP_Certificate( $id );
$certificate->remove_layer( LP_Request::get_string( 'layer' ) );
}
/**
* Load layer options
*/
public function load_layer() {
$id = LP_Request::get_int( 'id' );
$certificate = new LP_Certificate( $id );
if ( ! $certificate->get_id() ) {
return;
}
$layer_id = LP_Request::get_string( 'layer' );
$certificate->layer_options( $layer_id );
die();
}
/**
* Ajax update layer options
*/
public function update_layer() {
$layer = LP_Request::get_array( 'layer' );
if ( ! $layer ) {
return;
}
if ( empty( $layer['name'] ) ) {
$layer['name'] = uniqid();
}
$id = LP_Request::get_int( 'id' );
if ( get_post_type( $id ) !== LP_ADDON_CERTIFICATES_CERT_CPT ) {
return;
}
$layers = get_post_meta( $id, '_lp_cert_layers', true );
if ( ! $layers ) {
$layers = array( $layer['name'] => $layer );
} else {
if ( ! is_array( $layers ) ) {
settype( $layers, 'array' );
}
$_layers = array();
$found = false;
foreach ( $layers as $_layer ) {
if ( is_object( $_layer ) ) {
$_layer = (array) $_layer;
}
if ( empty( $_layer['name'] ) ) {
$_layer['name'] = uniqid();
}
if ( $_layer['name'] == $layer['name'] ) {
$_layers[ $_layer['name'] ] = $layer;
$found = true;
} else {
$_layers[ $_layer['name'] ] = $_layer;
}
}
if ( ! $found ) {
$_layers[ $layer['name'] ] = $layer;
}
$layers = $_layers;
}
$rs_update_layers = update_post_meta( $id, '_lp_cert_layers', $layers );
if ( 'yes' === LP_Request::get_string( 'load-settings' ) ) {
$id = LP_Request::get_int( 'id' );
$certificate = new LP_Certificate( $id );
$certificate->layer_options( $layer['name'] );
}
die();
}
/**
* Ajax update layer options
*/
public function update_layers() {
$layers = LP_Request::get_array( 'layers' );
if ( ! $layers ) {
return;
}
$id = LP_Request::get_int( 'id' );
if ( get_post_type( $id ) !== LP_ADDON_CERTIFICATES_CERT_CPT ) {
return;
}
update_post_meta( $id, '_lp_cert_layers', $layers );
die();
}
/**
* Ajax update template
*/
public function update_template() {
$id = LP_Request::get_int( 'id' );
$template = LP_Request::get_string( 'template' );
// Check if link same domain, remove domain name.
$template = str_replace( home_url(), '', $template );
if ( $id ) {
update_post_meta( $id, '_lp_cert_template', $template );
}
}
/**
* Add rewrite tags for single certificate, profile certificate
*
* @return void
*/
public function add_rewrite_tags( $tags = array() ) {
return array_merge(
$tags,
array(
'%cert-id%' => '(.*)',
'%act%' => '(.*)',
'%view-cert%' => '(.*)',
)
);
}
/**
* Add rewrite rules for single certificate, profile certificate
*
* @param $rules
*
* @return array
*/
public function add_rewrite_rules( $rules ) {
$profile_id = learn_press_get_page_id( 'profile' );
$slug_page_single_cert = urldecode( LP_Settings::get_option( 'lp_cert_slug', 'certificates' ) );
$profile_slug = get_post_field( 'post_name', $profile_id );
$rules['profile'][ LP_ADDON_CERTIFICATES_CERT_CPT ] = array(
"^{$profile_slug}/([^/]*)/?({$slug_page_single_cert})/?$" =>
'index.php?page_id=' . $profile_id . '&user=$matches[1]&view=$matches[2]',
);
$rules[ LP_ADDON_CERTIFICATES_CERT_CPT ]['single_view'] = array(
'^' . $slug_page_single_cert . '/([^/]*)/?$' =>
'index.php?view-cert=$matches[1]',
);
return $rules;
}
/**
* Include files
*/
protected function _includes() {
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/class-lp-certificate-database.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/class-lp-certificate-filter.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/class-lp-certificate-post-type.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/class-lp-certificate.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/class-lp-user-certificate.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/layers/class-lp-certificate-layer.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/layers/_datetime.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/layers/class-lp-course-name-layer.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/layers/class-lp-student-name-layer.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/class-lp-certificate-ajax.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/class-lp-certificate-order.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/class-lp-certificate-product-woo.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/class-lp-certificate-woo.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/functions.php';
include_once LP_ADDON_CERTIFICATES_PATH . '/inc/rest-api/class-lp-rest-admin-certificate-controller.php';
}
public function wp_scripts() {
$this->_enqueue_assets();
}
/**
* JS Settings
*/
public function add_script_data() {
$this->_enqueue_assets();
global $post;
if ( LP_ADDON_CERTIFICATES_CERT_CPT !== get_post_type() || LP_Request::get_string( 'post_type' ) == LP_ADDON_CERTIFICATES_CERT_CPT ) {
return;
}
$certificate = new LP_Certificate( $post->ID );
$assets = LP_Admin_Assets::instance();
$assets->add_script_data(
'certificates',
array(
'id' => $certificate->get_id(),
'layers' => $certificate->get_raw_layers(),
'template' => $certificate->get_template(),
'preview' => $certificate->get_preview(),
'systemFonts' => LP_Certificate::system_fonts(),
'i18n' => array(
'confirm_remove_layer' => __( 'Delete this layer?', 'learnpress-certificates' ),
),
)
);
}
/**
* Default fields.
*
* @return array
*/
public static function get_fields() {
return apply_filters(
'certificates/fields',
array(
array(
'name' => 'course-name',
'icon' => 'dashicons-welcome-learn-more',
'title' => __( 'Course name', 'learnpress-certificates' ),
),
array(
'name' => 'student-name',
'icon' => 'dashicons-admin-users',
'title' => __( 'Student name', 'learnpress-certificates' ),
),
array(
'name' => 'course-start-date',
'icon' => 'dashicons-calendar-alt',
'title' => __( 'Course start date', 'learnpress-certificates' ),
),
array(
'name' => 'course-end-date',
'icon' => 'dashicons-calendar-alt',
'title' => __( 'Course end date', 'learnpress-certificates' ),
),
array(
'name' => 'current-time',
'icon' => 'dashicons-clock',
'title' => __( 'Current time', 'learnpress-certificates' ),
),
array(
'name' => 'verified-link',
'icon' => 'dashicons-yes',
'title' => __( 'QR code', 'learnpress-certificates' ),
),
array(
'name' => 'custom',
'icon' => 'dashicons-smiley',
'title' => __( 'Custom', 'learnpress-certificates' ),
),
)
);
}
/**
* Enqueue asstes
*/
protected function _enqueue_assets() {
$min = '.min';
$ver = $this->version;
if ( LP_Debug::is_debug() ) {
$min = '';
$ver = uniqid();
}
$localize_cer = array(
'base_url' => home_url(),
'url_upload_cert' => home_url( 'upload' ),
'url_ajax' => admin_url( 'admin-ajax.php' ),
'i18n' => array(
'loading' => __( 'Loading', 'learnpress-certificates' ),
),
);
$ids_screen_valid = array( 'lp_course', 'lp_cert' );
$id_current_screen = '';
if ( function_exists( 'get_current_screen' ) && get_current_screen() ) {
$id_current_screen = get_current_screen()->id;
}
// Todo: rewrite code use class-lp-assets standard
wp_register_script(
'fabric',
$this->get_plugin_url( 'assets/src/js/fabric.min.js' ),
array(),
'1.4.13',
[
'strategy' => 'defer',
]
);
wp_register_script(
'certificates-js',
$this->get_plugin_url( "assets/dist/js/frontend/certificates{$min}.js" ),
array( 'jquery', 'wp-api-fetch', 'fabric' ),
$ver,
[
'strategy' => 'defer',
]
);
if ( is_admin() ) {
wp_register_script(
'md5',
$this->get_plugin_url( 'assets/src/js/md5.js' ),
array(),
false,
[
'in_footer' => true,
'strategy' => 'defer',
]
);
wp_register_script(
'certificates',
$this->get_plugin_url( "assets/dist/js/backend/admin.certificates{$min}.js" ),
array(
'fabric',
'jquery',
'wp-util',
'jquery-ui-draggable',
'jquery-ui-droppable',
'vue-libs',
'certificates-js',
),
$ver,
[
'in_footer' => true,
'strategy' => 'defer',
]
);
wp_register_style(
'admin-certificates-css',
$this->get_plugin_url( "assets/dist/css/admin.certificates{$min}.css" ),
array(),
$ver
);
if ( $id_current_screen == 'edit-lp_course' ) {
wp_enqueue_style( 'admin-certificates-css' );
}
if ( $id_current_screen == 'lp_course' ) {
wp_enqueue_style( 'admin-certificates-css' );
wp_enqueue_script( 'certificates' );
}
if ( $id_current_screen == 'lp_cert' ) {
wp_enqueue_style( 'wp-color-picker' );
wp_enqueue_script( 'wp-color-picker' );
wp_enqueue_style( 'admin-certificates-css' );
wp_enqueue_script( 'md5' );
wp_enqueue_media();
wp_enqueue_script( 'certificates' );
}
wp_localize_script( 'certificates-js', 'localize_lp_cer_js', $localize_cer );
wp_localize_script( 'certificates', 'localize_lp_cer_js', $localize_cer );
} else {
wp_register_script(
'pdfjs',
$this->get_plugin_url( 'assets/src/js/pdf.js' ),
[],
'1.5.3',
[
'strategy' => 'defer',
]
);
wp_register_script(
'downloadjs',
$this->get_plugin_url( 'assets/src/js/download.min.js' ),
array(),
'4.2',
[
'strategy' => 'defer',
]
);
wp_register_style(
'certificates-css',
$this->get_plugin_url( "assets/dist/css/certificates{$min}.css" ),
array(),
$ver
);
wp_register_script(
'certificate-profile-js',
$this->get_plugin_url( "assets/dist/js/frontend/profile.certificates{$min}.js" ),
array( 'wp-api-fetch' ),
$ver,
[
'strategy' => 'defer',
]
);
wp_localize_script( 'certificates-js', 'localize_lp_cer_js', $localize_cer );
$this->checkLoadSourceAssetsFrontend();
}
}
/**
* Download google font to local
*
* @param $lp_submenu_settings
*
* @return void
* @version 1.0.0
* @since 4.0.7
*/
public function save_data_gg_fonts( $lp_submenu_settings ) {
try {
if ( empty( $_POST['learn_press_certificates'] ) ) {
return;
}
if ( empty( $_POST['learn_press_certificates']['google_fonts'] ) ) {
return;
}
$gg_fonts_families_old = LP_Settings::instance()->get( 'certificates.google_fonts.families', '' );
$gg_fonts_families_new = $_POST['learn_press_certificates']['google_fonts']['families'] ?? '';
if ( empty( $gg_fonts_families_new ) ) {
LP_Settings::update_option( 'cert_gg_fonts', '' );
}
if ( $gg_fonts_families_old === $gg_fonts_families_new ) {
return;
}
require_once LP_ADDON_CERTIFICATES_PATH . '/inc/DownloadFontGoogle.php';
$url_font = 'https://fonts.googleapis.com/css?family=' . $gg_fonts_families_new . '&display=swap';
$downloader = new DownloadFontGoogle( $url_font );
$content_font = $downloader->get_styles();
LP_Settings::update_option( 'cert_gg_fonts', $content_font );
} catch ( Throwable $e ) {
LP_Settings::update_option( 'cert_gg_fonts', '' );
error_log( $e->getMessage() );
}
}
/**
* Load fonts google
*
* @since 3.0.0
* @version 3.0.1
*/
public function header_google_fonts() {
$font_gg = LP_Settings::get_option( 'cert_gg_fonts', '' );
if ( ! empty( $font_gg ) ) {
echo '<style id="lp-certificates-fonts-gg">' . $font_gg . '</style>';
}
}
/*
public function admin_view( $view, $args = '' ) {
learn_press_admin_view( $view, wp_parse_args( $args, array( 'plugin_file' => LP_ADDON_CERTIFICATES_FILE ) ) );
}*/
public function checkLoadSourceAssetsFrontend() {
$flag = false;
$url_current = LP_Helper::getUrlCurrent();
/*** Check is page Profile certificate */
if ( LP_Page_Controller::is_page_profile() ) {
wp_enqueue_script( 'certificate-profile-js' );
$flag = true;
}
/*** Check is page course */
if ( LP_PAGE_SINGLE_COURSE === LP_Page_Controller::page_current() ) {
$flag = true;
}
/*** Check is single certificate */
/*$str_valid_page_single_cert = home_url( $slug_page_single_cert ) . '/.*';
$pattern_is_page_single_cert = "@{$str_valid_page_single_cert}@";
preg_match( $pattern_is_page_single_cert, $url_current, $match_p_single_cert );
if ( ! empty( $match_p_single_cert ) ) {
$flag = true;
}*/
$flag = apply_filters( 'learn-press/cert-check-load-assets-frontend', $flag );
/*** Check is Frontend editor - case Frontend editor = 3.1.1 */
if ( is_plugin_active( 'learnpress-frontend-editor/learnpress-frontend-editor.php' )
&& class_exists( LP_Addon_Frontend_Editor::class )
&& LP_ADDON_FRONTEND_EDITOR_VER == '3.1.0' ) {
$frontend_editor = new LP_Addon_Frontend_Editor();
$slug_frontend_editor = $frontend_editor->get_root_slug();
$str_valid_page_frontend_editor = '.*/' . $slug_frontend_editor . '/edit-post/.*';
$pattern_is_page_frontend_editor = "@{$str_valid_page_frontend_editor}@";
preg_match( $pattern_is_page_frontend_editor, $url_current, $match_p_frontend_editor );
if ( ! empty( $match_p_frontend_editor ) ) {
$flag = true;
}
}
if ( $flag ) {
//wp_enqueue_style( 'fontawesome-css' );
wp_enqueue_style( 'certificates-css' );
wp_enqueue_script( 'pdfjs' );
wp_enqueue_script( 'downloadjs' );
wp_enqueue_script( 'certificates-js' );
}
}
/**
* Get link certificate background by course
*
* @param int $course_id
*
* @return string
* @since 4.1.0
* @version 1.0.0
*/
public static function get_link_cert_bg_by_course( int $course_id ): string {
$cert_bg_img = get_post_meta( $course_id, '_lp_cert_template', true );
if ( empty( $cert_bg_img ) ) {
return '';
}
// If link is full path: https://domain.com/wp-content/uploads/2021/01/abc.jpg
$pattern = '#^https?://.*#';
if ( preg_match( $pattern, $cert_bg_img ) ) {
$link_cert_bg = $cert_bg_img;
} else { // Else link is relative path: /wp-content/uploads/2021/01/abc.jpg
$link_cert_bg = untrailingslashit( site_url() ) . '/' . $cert_bg_img;
}
return $link_cert_bg;
}
}