apply_filters( 'learndash_courseinfo', string $shortcode_output, array $shortcode_attributes )
Filters courseinfo shortcode output.
Description #
Parameters #
- $shortcode_output
-
(string) The output of courseinfo shortcode.
- $shortcode_attributes
-
(array) An array of shortcode attributes.
Source #
Examples #
Note: Extended code example below not guaranteed, you may need to consult with a developer
<?php
/**
* Example usage for learndash_courseinfo filter.
*/
add_filter(
'learndash_courseinfo',
function( $content = '', $atts = array() ) {
if ( ( empty( $content ) ) && ( is_array( $atts ) ) && ( ! empty( $atts ) ) ) {
if ( ( isset( $atts['show'] ) ) && ( ! empty( $atts['show'] ) ) ) {
// First determine the course_id and user_id logic
$course_id = ! empty( $course_id ) ? $course_id : @$_GET['course_id'];
$user_id = ! empty( $user_id ) ? $user_id : @$_GET['user_id'];
if ( empty( $user_id ) ) {
$user_id = get_current_user_id();
/**
* Added logic to allow admin and group_leader to view certificate from other users.
*
* @since 2.3.0
*/
$post_type = '';
if ( get_query_var( 'post_type' ) ) {
$post_type = get_query_var( 'post_type' );
}
if ( $post_type == 'sfwd-certificates' ) {
if ( ( ( learndash_is_admin_user() ) || ( learndash_is_group_leader_user() ) ) && ( ( isset( $_GET['user'] ) ) && ( ! empty( $_GET['user'] ) ) ) ) {
$user_id = intval( $_GET['user'] );
}
}
}
switch ( $atts['show'] ) {
case 'course_price':
if ( ! empty( $course_id ) ) {
$course_price = learndash_get_setting( $course_id, 'course_price' );
if ( isset( $shortcode_atts['decimals'] ) ) {
$shortcode_atts['decimals'] = 2;
}
$course_price = number_format( floatval( $course_price ), $shortcode_atts['decimals'], '.', '' );
$content .= $course_price;
}
break;
case 'course_points':
if ( ! empty( $course_id ) ) {
$course_points = learndash_get_course_points( $course_id );
$course_points = intval( $course_points );
if ( ! empty( $course_points ) ) {
$content .= $course_points;
}
}
break;
case 'user_course_points':
if ( ! empty( $user_id ) ) {
$user_course_points = learndash_get_user_course_points( $user_id );
$content .= $user_course_points;
}
break;
default:
break;
}
}
}
// Always return $content
return $content;
},
10,
2
);