LLMS_Reviews
LLMS_Reviews class
Contents
Source Source
File: includes/class.llms.review.php
class LLMS_Reviews {
/**
* This is the constructor for this class.
*
* It takes care of attaching the functions in this file to the
* appropriate actions.
* These actions are:
* 1) Output after course info.
* 2) Output after membership info.
* 3 & 4) Add function call to the proper AJAX call.
*
* @since 3.1.3
*
* @return void
*/
public function __construct() {
add_action( 'wp_ajax_LLMSSubmitReview', array( $this, 'process_review' ) );
add_action( 'wp_ajax_nopriv_LLMSSubmitReview', array( $this, 'process_review' ) );
}
/**
* This function handles the HTML output of the reviews and review form.
* If the option is enabled, the review form will be output,
* if not, nothing will happen. This function also checks to
* see if a user is allowed to review more than once.
*
* @since 1.2.7
* @since 3.24.0 Unknown.
* @since 7.1.3 Improve inline styles, escape output.
*
* @return void
*/
public static function output() {
/**
* Check to see if we are supposed to output the code at all.
*/
if ( get_post_meta( get_the_ID(), '_llms_display_reviews', true ) ) {
/**
* Filters the reviews section title.
*
* @since 1.2.7
*
* @param string $section_title The section title.
*/
$section_title = apply_filters( 'lifterlms_reviews_section_title', __( 'What Others Have Said', 'lifterlms' ) );
?>
<div id="old_reviews">
<h3><?php echo esc_html( $section_title ); ?></h3>
<?php
$args = array(
'posts_per_page' => get_post_meta( get_the_ID(), '_llms_num_reviews', true ),
'post_type' => 'llms_review',
'post_status' => 'publish',
'post_parent' => get_the_ID(),
'suppress_filters' => true,
);
$posts_array = get_posts( $args );
/**
* Allow review custom styles to be filtered.
*
* @since 1.2.7
*
* @param array $styles Array of custom styles.
*/
$styles = apply_filters(
'llms_review_custom_styles',
array(
'background-color' => '#efefef',
'title-color' => 'inherit',
'text-color' => 'inherit',
'custom-css' => '',
)
);
$inline_styles = '';
if ( $styles['background-color'] ?? '' ) {
$inline_styles .= '.llms_review{background-color:' . $styles['background-color'] . '}';
}
if ( $styles['title-color'] ?? '' ) {
$inline_styles .= '.llms_review h5{color:' . $styles['title-color'] . '}';
}
if ( $styles['text-color'] ?? '' ) {
$inline_styles .= '.llms_review h6,.llms_review p{color:' . $styles['text-color'] . '}';
}
if ( $styles['custom-css'] ?? '' ) {
// Remove style tags in case they were added with the filter.
$inline_styles .= str_replace( array( '<style>', '</style>' ), '', $styles['custom-css'] );
}
if ( $inline_styles ) {
echo '<style id="llms_review_custom_styles">' . $inline_styles . '</style>';
}
foreach ( $posts_array as $post ) {
?>
<div class="llms_review">
<h5><strong><?php echo get_the_title( $post->ID ); ?></strong></h5>
<h6>
<?php
// Translators: %s = The author display name.
echo esc_html( sprintf( __( 'By: %s', 'lifterlms' ), get_the_author_meta( 'display_name', get_post_field( 'post_author', $post->ID ) ) ) );
?>
</h6>
<p><?php echo esc_html( get_post_field( 'post_content', $post->ID ) ); ?></p>
</div>
<?php
}
?>
<hr>
</div>
<?php
}
/**
* Check to see if reviews are open.
*/
if ( get_post_meta( get_the_ID(), '_llms_reviews_enabled', true ) && is_user_logged_in() ) {
/**
* Look for previous reviews that we have written on this course.
*
* @var array $posts_array Array of posts.
*/
$args = array(
'posts_per_page' => 1,
'post_type' => 'llms_review',
'post_status' => 'publish',
'post_parent' => get_the_ID(),
'author' => get_current_user_id(),
'suppress_filters' => true,
);
$posts_array = get_posts( $args );
/**
* Filters the thank you text.
*
* @since 1.2.7
*
* @param string $thank_you_text The thank you text.
Expand full source code Collapse full source code View on GitHub
Methods Methods
- __construct — This is the constructor for this class. It takes care of attaching the functions in this file to the appropriate actions. These actions are: 1) output after course info 2) output after membership info 3 & 4) Add function call to the proper AJAX call
- output — This function handles the HTML output of the reviews and review form.
- process_review — This function adds the review to the database. It is called by the AJAX handler when the submit review button is pressed. This function gathers the data from $_POST and then adds the review with the appropriate content.