Shortcode para Mostrar el Precio de un Curso en Tutor LMS

Este artículo es material informativo sobre una función que desarrollé para un proyecto, diseñada para obtener y mostrar el precio de un curso en Tutor LMS con WooCommerce. Esta función es sencilla, pero puede modificarse y ampliarse para crear funciones más avanzadas y personalizadas. Usando el shortcode [get_course_price], se puede integrar el precio de los cursos en listados o en páginas de detalles de curso, proporcionando flexibilidad en la personalización.

function get_course_price() {
    
    // Verificamos si el curso es comprable y obtenemos el ID del producto en WooCommerce
    $is_purchasable = tutor_utils()->is_course_purchasable();
    $product_id = tutor_utils()->get_course_product_id();
    
    // Obtenemos el producto de WooCommerce y los precios regular y en oferta (si aplica)
    $product = wc_get_product($product_id);
    $regular_price = $product ? wc_get_price_to_display($product, array('price' => $product->get_regular_price())) : '';
    $sale_price = $product ? wc_get_price_to_display($product, array('price' => $product->get_sale_price())) : '';
    
    // Símbolo de moneda de WooCommerce
    $currency_symbol = get_woocommerce_currency_symbol();
    
    // Si el curso es comprable, mostramos el precio
    if ($is_purchasable) {
        echo '<div class="ctlms_price_container">';
        
        // Si el curso está en oferta, mostramos el precio en oferta y el regular tachado
        if ($product->is_on_sale()) {
            echo '<div class="custom_sale_price">' . esc_html($currency_symbol) . ' '. esc_html($sale_price) . '</div>';
            echo '<div class="custom_regular_price_crossed">'. esc_html($currency_symbol) . ' ' . esc_html($regular_price) . '</div>';
        } else {
            // Si no hay oferta, solo mostramos el precio regular
            echo '<div class="custom_regular_price">'. esc_html($currency_symbol) . ' ' . esc_html($regular_price) . '</div>';
        }

        echo '</div>'; // Cierre del contenedor
    } else {
        // Si no es comprable, mostramos "Gratis"
        echo '<div class="custom_free_price">' . __('Gratis', 'text-domain') . '</div>';
    }
}
add_shortcode( 'get_course_price', 'get_course_price' );

Uso del Shortcode

Para utilizar la función en tus páginas, solo necesitas incluir [get_course_price] en cualquier parte del contenido o plantilla. El shortcode ejecutará la función y mostrará el precio del curso configurado en Tutor LMS y WooCommerce, o la palabra «Gratis» si el curso no es comprable.

Adaptaciones y Mejoras

Este código puede ser una excelente base para personalizar aún más la funcionalidad de tu tienda de cursos. Puedes ampliarlo para incluir opciones como mostrar precios personalizados según el usuario, descuentos dinámicos o información adicional del curso. ¡Anímate a modificarla y a crear tus propias funciones avanzadas!

Compartir esta información