get_testimonials( $args );
} // End woothemes_get_testimonials()
}
/**
* Enable the usage of do_action( 'woothemes_testimonials' ) to display testimonials within a theme/plugin.
*
* @since 1.0.0
*/
add_action( 'woothemes_testimonials', 'woothemes_testimonials' );
if ( ! function_exists( 'woothemes_testimonials' ) ) {
/**
* Display or return HTML-formatted testimonials.
* @param string/array $args Arguments.
* @since 1.0.0
* @return string
*/
function woothemes_testimonials ( $args = '' ) {
global $post;
$defaults = array(
'limit' => 5,
'orderby' => 'menu_order',
'interval' => 10000,
'order' => 'DESC',
'id' => 0,
'display_author' => true,
'display_avatar' => true,
'display_url' => true,
'pagination' => false,
'echo' => true,
'size' => 50,
'title' => '',
'before' => '',
'after' => '',
'before_title' => '',
'after_title' => '',
'type' => 'slider',
'columns' => 2,
'navigation' => false,
'category' => 0
);
$img_size = 40;
$args = wp_parse_args( $args, $defaults );
// Allow child themes/plugins to filter here.
$args = apply_filters( 'woothemes_testimonials_args', $args );
$html = '';
do_action( 'woothemes_testimonials_before', $args );
// The Query.
$query = woothemes_get_testimonials( $args );
$class = 'cbp-qtrotator';
if($args['type'] == 'slider') {
$class = 'cbp-qtrotator testimonials-slider';
} elseif($args['type'] == 'grid') {
$img_size = 120;
$class = 'testimonial-grid';
}
// The Display.
if ( ! is_wp_error( $query ) && is_array( $query ) && count( $query ) > 0 ) {
$html .= $args['before'] . "\n";
if ( '' != $args['title'] ) {
$html .= $args['before_title'] . esc_html( $args['title'] ) . $args['after_title'] . "\n";
}
$html .= '
' . "\n";
// Begin templating logic.
if($args['type'] == 'slider') {
$tpl = '
%%TEXT%%
%%AVATAR%%
%%AUTHOR%%
';
} elseif($args['type'] == 'grid') {
$tpl = '
%%AVATAR%%
%%TEXT%%
%%AUTHOR%%
';
}
$tpl = apply_filters( 'woothemes_testimonials_item_template', $tpl, $args );
$count = 0;
if ($args['type'] == 'grid') {
$html .= '
';
}
foreach ( $query as $post ) { $count++;
$template = $tpl;
$css_class = 'quote';
if ( 1 == $count ) { $css_class .= ' first'; }
if ( count( $query ) == $count ) { $css_class .= ' last'; }
setup_postdata( $post );
$author = '';
$author_text = '';
// If we need to display the author, get the data.
if ( ( get_the_title( $post ) != '' ) && true == $args['display_author'] ) {
$author .= '
';
$author_name = get_the_title( $post );
$author .= ''.$author_name.'';
if ( isset( $post->byline ) && '' != $post->byline ) {
$author .= ' ' . $post->byline . '' . "\n";
}
if ( true == $args['display_url'] && '' != $post->url ) {
$author .= ' ' . $post->url . '' . "\n";
}
$author .= '' . "\n";
// Templating engine replacement.
$template = str_replace( '%%AUTHOR%%', $author, $template );
} else {
$template = str_replace( '%%AUTHOR%%', '', $template );
}
// Templating logic replacement.
$template = str_replace( '%%ID%%', get_the_ID(), $template );
$template = str_replace( '%%CLASS%%', esc_attr( $css_class ), $template );
if ( isset( $post->image ) && ( '' != $post->image ) && true == $args['display_avatar'] ) {
$image = '
 . ')
';
$template = str_replace( '%%AVATAR%%', '
' . $image . '', $template );
} else {
$template = str_replace( '%%AVATAR%%', '', $template );
}
// Remove any remaining %%AVATAR%% template tags.
$template = str_replace( '%%AVATAR%%', '', $template );
$content = apply_filters( 'woothemes_testimonials_content', get_the_content(), $post );
$template = str_replace( '%%TEXT%%', $content, $template );
// Assign for output.
$html .= $template;
if ($count%$args['columns'] == 0 && count( $query ) != $count && $args['type'] == 'grid') {
$html .= '
';
}
}
if ($args['type'] == 'grid') {
$html .= '
';
}
wp_reset_postdata();
if ( $args['pagination'] == true && count( $query ) > 1 && $args['effect'] != 'none' ) {
$html .= '' . "\n";
}
$html .= '
' . "\n";
if ($args['navigation']) {
$html .= '
' . "\n";
$html .= '
' . "\n";
}
$html .= '
' . "\n";
$html .= $args['after'] . "\n";
}
// Allow child themes/plugins to filter here.
$html = apply_filters( 'woothemes_testimonials_html', $html, $query, $args );
if ( $args['echo'] != true ) { return $html; }
// Should only run is "echo" is set to true.
echo $html;
do_action( 'woothemes_testimonials_after', $args ); // Only if "echo" is set to true.
} // End woothemes_testimonials()
}
if ( ! function_exists( 'woothemes_testimonials_shortcode' ) ) {
/**
* The shortcode function.
* @since 1.0.0
* @param array $atts Shortcode attributes.
* @param string $content If the shortcode is a wrapper, this is the content being wrapped.
* @return string Output using the template tag.
*/
function woothemes_testimonials_shortcode ( $atts, $content = null ) {
$args = (array)$atts;
$defaults = array(
'limit' => 5,
'orderby' => 'menu_order',
'order' => 'DESC',
'interval' => 10000,
'id' => 0,
'display_author' => true,
'display_avatar' => true,
'display_url' => true,
'effect' => 'fade', // Options: 'fade', 'none'
'pagination' => false,
'echo' => true,
'size' => 50,
'type' => 'slider',
'navigation' => false,
'category' => 0
);
$args = shortcode_atts( $defaults, $atts );
// Make sure we return and don't echo.
$args['echo'] = false;
// Fix integers.
if ( isset( $args['limit'] ) ) $args['limit'] = intval( $args['limit'] );
if ( isset( $args['id'] ) ) $args['id'] = intval( $args['id'] );
if ( isset( $args['size'] ) && ( 0 < intval( $args['size'] ) ) ) $args['size'] = intval( $args['size'] );
if ( isset( $args['category'] ) && is_numeric( $args['category'] ) ) $args['category'] = intval( $args['category'] );
// Fix booleans.
foreach ( array( 'display_author', 'display_url', 'pagination', 'display_avatar' ) as $k => $v ) {
if ( isset( $args[$v] ) && ( 'true' == $args[$v] ) ) {
$args[$v] = true;
} else {
$args[$v] = false;
}
}
return woothemes_testimonials( $args );
} // End woothemes_testimonials_shortcode()
}
add_shortcode( 'testimonials', 'woothemes_testimonials_shortcode' );
if ( ! function_exists( 'woothemes_testimonials_content_default_filters' ) ) {
/**
* Adds default filters to the "woothemes_testimonials_content" filter point.
* @since 1.3.0
* @return void
*/
function woothemes_testimonials_content_default_filters () {
add_filter( 'woothemes_testimonials_content', 'do_shortcode' );
} // End woothemes_testimonials_content_default_filters()
add_action( 'woothemes_testimonials_before', 'woothemes_testimonials_content_default_filters' );
}
?>