helpers->isMemberMouseCoursesActive() ) { return []; } $courseId = get_the_ID(); $certificatesEnabled = get_post_meta( $courseId, '_mmcs_course_certificates_enable', true ); if ( is_string( $certificatesEnabled ) && 'enabled' === strtolower( $certificatesEnabled ) ) { $data['hasCourseCertificate'] = [ '@type' => 'EducationalOccupationalCredential', 'name' => sprintf( // Translators: 1 - The site name. __( '%1$s Certificate of Completion', 'aioseo-pro' ), get_bloginfo( 'name' ) ) ]; } if ( isset( $graphData->properties->autogenerate ) && ! $graphData->properties->autogenerate ) { return $data; } $sectionTableName = aioseo()->core->db->prefix . 'mmcs_sections'; $sections = aioseo()->core->db->execute( aioseo()->core->db->db->prepare( "SELECT * FROM {$sectionTableName} WHERE course_id = $courseId ORDER BY section_order ASC", get_the_ID() ), true )->result(); if ( ! empty( $sections ) ) { $sectionData = []; foreach ( $sections as $section ) { $sectionData[] = [ '@type' => 'Syllabus', 'name' => $section->title, 'description' => $section->description ]; } if ( ! empty( $sectionData ) ) { $data['syllabusSections'] = $sectionData; } } // Get all memberships that have access to this course. $postAccessTableName = aioseo()->core->db->prefix . 'mm_posts_access'; $memberships = aioseo()->core->db->execute( aioseo()->core->db->db->prepare( "SELECT access_id FROM {$postAccessTableName} WHERE post_id = %d", $courseId ), true )->result(); if ( ! empty( $memberships ) ) { $currency = get_option( 'mm-option-currency', 'USD' ); $offers = []; foreach ( $memberships as $membership ) { $membershipLevelTableName = aioseo()->core->db->prefix . 'mm_membership_levels'; $membershipLevels = aioseo()->core->db->execute( aioseo()->core->db->db->prepare( "SELECT * FROM {$membershipLevelTableName} WHERE id = %d", $membership->access_id ), true )->result(); foreach ( $membershipLevels as $membershipLevel ) { if ( '1' === $membershipLevel->is_free ) { $offers[] = [ '@type' => 'Offer', 'category' => 'Free' ]; continue; } // Get the product IDs for the membership level. $membershipProductTableName = aioseo()->core->db->prefix . 'mm_membership_level_products'; $membershipProducts = aioseo()->core->db->execute( aioseo()->core->db->db->prepare( "SELECT * FROM {$membershipProductTableName} WHERE membership_id = %d", $membershipLevel->id ), true )->result(); foreach ( $membershipProducts as $membershipProduct ) { $productTableName = aioseo()->core->db->prefix . 'mm_products'; $product = aioseo()->core->db->execute( aioseo()->core->db->db->prepare( "SELECT * FROM {$productTableName} WHERE id = %d", $membershipProduct->product_id ), true )->result(); foreach ( $product as $productData ) { $category = ! empty( $productData->rebill_frequency ) ? 'Subscription' : 'Paid'; $offers[] = [ '@type' => 'Offer', 'category' => $category, 'price' => number_format( $productData->price, 2 ), 'priceCurrency' => $currency ]; } } } } if ( ! empty( $offers ) ) { $data['offers'] = $offers; } } return $data; } }