Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 37 additions & 34 deletions models/EnrollmentModel.php
Original file line number Diff line number Diff line change
Expand Up @@ -172,48 +172,51 @@ public static function is_enrolled( $course_id = 0, $user_id = 0, bool $is_compl
global $wpdb;
$course_id = tutor_utils()->get_post_id( $course_id );
$user_id = tutor_utils()->get_user_id( $user_id );

$cache_key = "tutor_is_enrolled_{$course_id}_{$user_id}_{$is_complete}";
$cached = TutorCache::get( $cache_key );

do_action( 'tutor_is_enrolled_before', $course_id, $user_id );
if ( false !== $cached ) {
return $cached;
}

$get_enrolled_info = TutorCache::get( $cache_key );
if ( ! $get_enrolled_info ) {
$status_clause = '';
if ( $is_complete ) {
$status_clause = $wpdb->prepare( 'AND post_status = %s ', self::STATUS_COMPLETED );
}
do_action( 'tutor_is_enrolled_before', $course_id, $user_id );

//phpcs:disable
$get_enrolled_info = $wpdb->get_row(
$wpdb->prepare(
"SELECT ID,
post_author,
post_date,
post_date_gmt,
post_title
FROM {$wpdb->posts}
WHERE post_author > 0
AND post_parent > 0
AND post_type = %s
AND post_parent = %d
AND post_author = %d
{$status_clause};
",
self::POST_TYPE,
$course_id,
$user_id
)
);
//phpcs:enable
$status_clause = '';
if ( $is_complete ) {
$status_clause = $wpdb->prepare( 'AND post_status = %s ', self::STATUS_COMPLETED );
}

if ( $get_enrolled_info ) {
$get_enrolled_info->order_id = (int) get_post_meta( $get_enrolled_info->ID, self::ENROLLMENT_ORDER_ID_META, true );
$get_enrolled_info->product_id = (int) get_post_meta( $get_enrolled_info->ID, self::ENROLLMENT_PRODUCT_ID_META, true );
}
//phpcs:disable
$get_enrolled_info = $wpdb->get_row(
$wpdb->prepare(
"SELECT ID,
post_author,
post_date,
post_date_gmt,
post_title
FROM {$wpdb->posts}
WHERE post_author > 0
AND post_parent > 0
AND post_type = %s
AND post_parent = %d
AND post_author = %d
{$status_clause};
",
self::POST_TYPE,
$course_id,
$user_id
)
);
//phpcs:enable

TutorCache::set( $cache_key, $get_enrolled_info );
if ( $get_enrolled_info ) {
$get_enrolled_info->order_id = (int) get_post_meta( $get_enrolled_info->ID, self::ENROLLMENT_ORDER_ID_META, true );
$get_enrolled_info->product_id = (int) get_post_meta( $get_enrolled_info->ID, self::ENROLLMENT_PRODUCT_ID_META, true );
}

TutorCache::set( $cache_key, $get_enrolled_info );

if ( $get_enrolled_info ) {
return apply_filters( 'tutor_is_enrolled', $get_enrolled_info, $course_id, $user_id );
}
Expand Down
3 changes: 2 additions & 1 deletion templates/dashboard/account/billing.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,14 @@
use Tutor\Components\Constants\Size;
use Tutor\Components\Nav;
use TUTOR\Dashboard;
use Tutor\Helpers\QueryHelper;
use TUTOR\Icon;
use TUTOR\Input;

$user_id = get_current_user_id();
$current_tab = Input::get( 'tab', 'order-history' );
$replies = Input::get( 'replies', 0, Input::TYPE_INT );
$order_filter = Input::get( 'order', 'DESC' );
$order_filter = QueryHelper::get_valid_sort_order( Input::get( 'order', 'DESC' ) );
$current_page = max( 1, Input::get( 'current_page', 1, Input::TYPE_INT ) );
$item_per_page = tutor_utils()->get_option( 'pagination_per_page', 10 );
$offset = ( $current_page - 1 ) * $item_per_page;
Expand Down
10 changes: 10 additions & 0 deletions templates/dashboard/account/billing/order-history.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@
* @author Themeum <support@themeum.com>
* @link https://themeum.com
* @since 4.0.0
*
* These variables are inherited from parent template.
* template: tutor/templates/dashboard/account/billing.php
*
* @var int $user_id The user ID.
* @var int $offset The offset for pagination.
* @var int $item_per_page The number of items per page.
* @var string $order_filter The order filter.
* @var int $current_page The current page.
*/

defined( 'ABSPATH' ) || exit;
Expand All @@ -25,6 +34,7 @@

$monetize_by = tutor_utils()->get_option( 'monetize_by' );
if ( 'free' === $monetize_by ) {
EmptyState::make()->title( __( 'No Orders Found!', 'tutor' ) )->render();
return;
}

Expand Down
Loading