' . wc_get_star_rating_html( $rating, $count ) . '';
}
return apply_filters( 'woocommerce_product_get_rating_html', $html, $rating, $count );
}
public function register_global_template_add_to_wishlist( $tooltip_position ) {
$settings = $this->get_settings_for_display();
global $product;
$user_id = get_current_user_id();
$product_id = $product->get_ID();
$wishlist = ultimate_store_kit_get_wishlist( $user_id );
$is_wishlisted = in_array( $product_id, $wishlist );
if ( ! empty( $is_wishlisted ) ) {
$selected = ' usk-active';
$tooltip = __( 'View Wishlist', 'ultimate-store-kit' );
$redirect_url = wc_get_account_endpoint_url( 'wishlist' );
} else {
$selected = '';
$tooltip = __( 'Add to Wishlist', 'ultimate-store-kit' );
$redirect_url = "javascript:void(0);";
} ?>
get_settings_for_display();
$user_id = get_current_user_id();
$product_id = $product->get_ID();
$compare_products = usk_get_compare_products( $user_id );
$is_compared = in_array( $product_id, $compare_products );
$compare_page_id = '';
if ( function_exists( 'ultimate_store_kit_compare_product_page' ) && $comparePage = ultimate_store_kit_compare_product_page() ) {
$compare_page_id = $comparePage;
}
$compare_redirect_link = home_url();
if ( $compare_page_id ) {
$compare_redirect_link = get_page_link( $compare_page_id );
}
if ( ! empty( $is_compared ) ) {
$tooltip = __( 'View Compare', 'ultimate-store-kit' );
$selected = 'usk-active';
$compare_page_link = home_url();
if ( $compare_page_id ) {
$compare_page_link = get_page_link( $compare_page_id );
}
} else {
$tooltip = __( 'Add to Compare', 'ultimate-store-kit' );
$selected = '';
$compare_page_link = "javascript:void(0);";
} ?>
get_settings_for_display();
if ( 'yes' == $settings['show_quick_view'] ) : ?>
get_settings_for_display();
if ( 'yes' == $settings['show_cart'] ) : ?>
1,
'class' => implode(
' ',
array_filter(
[
'usk-cart',
'usk-action-btn',
'product_type_' . $product->get_type(),
$product->is_purchasable() && $product->is_in_stock() ? 'add_to_cart_button' : '',
$product->supports( 'ajax_add_to_cart' ) && $product->is_purchasable() && $product->is_in_stock() ? 'ajax_add_to_cart' : '',
]
)
),
'attributes' => [
'data-product_id' => $product->get_id(),
'data-product_sku' => $product->get_sku(),
'data-microtip-position' => $tooltip_position,
'aria-label' => $product->add_to_cart_text(),
'rel' => 'nofollow',
'role' => 'tooltip',
],
];
$args = apply_filters( 'woocommerce_loop_add_to_cart_args', wp_parse_args( $defaults ), $product );
if ( isset( $args['attributes']['aria-label'] ) ) {
$args['attributes']['aria-label'] = wp_strip_all_tags( $args['attributes']['aria-label'] );
}
echo wp_kses_post( apply_filters(
'woocommerce_loop_add_to_cart_link', // WPCS: XSS ok.
sprintf(
'',
esc_url( $product->add_to_cart_url() ),
esc_attr( isset( $args['quantity'] ) ? $args['quantity'] : 1 ),
esc_attr( isset( $args['class'] ) ? $args['class'] : 'button' ),
isset( $args['attributes'] ) ? wc_implode_html_attributes( $args['attributes'] ) : ''
),
$product,
$args
) );
}
; ?>
get_settings_for_display();
global $product;
if ( $product->is_on_sale() && $settings['show_sale_badge'] ) :
printf( '
%1$s
', esc_html__( 'Sale', 'ultimate-store-kit' ) );
endif;
if ( $settings['show_discount_badge'] ) :
$this->usk_get_badge_label_percentage();
endif;
if ( ( $settings['show_stock_status'] === 'yes' ) ) :
if ( $product->get_stock_status() === 'instock' ) {
$stock_status = esc_html__( 'In Stock', 'ultimate-store-kit' );
} else {
$stock_status = esc_html__( 'Out of Stock', 'ultimate-store-kit' );
}
printf( '%1$s
', esc_html( $stock_status ) );
endif;
if ( $product->is_featured() && $settings['show_trending_badge'] ) :
printf( '%1$s
', esc_html__( 'Trending', 'ultimate-store-kit' ) );
endif;
if ( $settings['show_new_badge'] ) :
$newness_days = $settings['newness_days'];
$created_date = strtotime( $product->get_date_created() );
$valid_date = time() - ( 60 * 60 * 24 * $newness_days );
if ( $valid_date < $created_date ) {
printf( '%s
', esc_html__( 'New', 'ultimate-store-kit' ) );
}
endif;
}
protected function register_global_template_navigation() {
$settings = $this->get_settings_for_display();
$hide_arrow_on_mobile = $settings['hide_arrow_on_mobile'] ? ' usk-visible@m' : '';
if ( 'arrows' == $settings['navigation'] ) : ?>
get_settings_for_display();
if ( 'dots' == $settings['navigation'] or 'arrows-fraction' == $settings['navigation'] ) : ?>
get_settings_for_display();
$hide_arrow_on_mobile = $settings['hide_arrow_on_mobile'] ? 'usk-visible@m usk-flex' : 'usk-flex';
?>
get_settings_for_display();
$hide_arrow_on_mobile = $settings['hide_arrow_on_mobile'] ? 'usk-visible@m' : ''; ?>
get_settings_for_display(); ?>
register_global_template_both_navigation(); ?>
register_global_template_arrows_fraction(); ?>
register_global_template_pagination() ?>
register_global_template_navigation() ?>
get_settings_for_display();
$this->add_render_attribute( 'usk-carousel-wrapper', 'class', [ '' . $this->get_name() . '', 'usk-grid-carousel', 'usk-content-position-' . $settings['alignment'] . '' ] );
$id = 'ultimate-store-kit-' . $this->get_id();
$elementor_vp_lg = get_option( 'elementor_viewport_lg' );
$elementor_vp_md = get_option( 'elementor_viewport_md' );
$viewport_lg = ! empty( $elementor_vp_lg ) ? $elementor_vp_lg - 1 : 1023;
$viewport_md = ! empty( $elementor_vp_md ) ? $elementor_vp_md - 1 : 767;
$this->add_render_attribute( 'carousel', 'id', $id );
$this->add_render_attribute( 'carousel', 'class', [ 'usk-carousel', 'usk-carousel-layout', 'elementor-swiper' ] );
if ( 'arrows' == $settings['navigation'] ) {
$this->add_render_attribute( 'carousel', 'class', 'usk-arrows-align-' . $settings['arrows_position'] );
} elseif ( 'dots' == $settings['navigation'] ) {
$this->add_render_attribute( 'carousel', 'class', 'usk-dots-align-' . $settings['dots_position'] );
} elseif ( 'both' == $settings['navigation'] ) {
$this->add_render_attribute( 'carousel', 'class', 'usk-arrows-dots-align-' . $settings['both_position'] );
} elseif ( 'arrows-fraction' == $settings['navigation'] ) {
$this->add_render_attribute( 'carousel', 'class', 'usk-arrows-dots-align-' . $settings['arrows_fraction_position'] );
}
if ( 'arrows-fraction' == $settings['navigation'] ) {
$pagination_type = 'fraction';
} elseif ( 'both' == $settings['navigation'] or 'dots' == $settings['navigation'] ) {
$pagination_type = 'bullets';
} elseif ( 'progressbar' == $settings['navigation'] ) {
$pagination_type = 'progressbar';
} else {
$pagination_type = '';
}
$this->add_render_attribute(
[
'carousel' => [
'data-settings' => [
wp_json_encode( array_filter( [
"autoplay" => ( "yes" == $settings["autoplay"] ) ? [ "delay" => $settings["autoplay_speed"] ] : false,
"loop" => ( $settings["loop"] == "yes" ) ? true : false,
"speed" => $settings["speed"]["size"],
"pauseOnHover" => ( "yes" == $settings["pauseonhover"] ) ? true : false,
"slidesPerView" => isset( $settings["columns_mobile"] ) ? (int) $settings["columns_mobile"] : 1,
"slidesPerGroup" => isset( $settings["slides_to_scroll_mobile"] ) ? (int) $settings["slides_to_scroll_mobile"] : 1,
"spaceBetween" => $settings["items_gap"]["size"],
"centeredSlides" => ( $settings["centered_slides"] === "yes" ) ? true : false,
"grabCursor" => ( $settings["grab_cursor"] === "yes" ) ? true : false,
"effect" => $settings["skin"],
"observer" => ( $settings["observer"] ) ? true : false,
"observeParents" => ( $settings["observer"] ) ? true : false,
// "direction" => $settings['direction'],
"watchSlidesVisibility" => true,
"watchSlidesProgress" => true,
"breakpoints" => [
(int) $viewport_md => [
"slidesPerView" => isset( $settings["columns_tablet"] ) ? (int) $settings["columns_tablet"] : 2,
"spaceBetween" => $settings["items_gap"]["size"],
"slidesPerGroup" => isset( $settings["slides_to_scroll_tablet"] ) ? (int) $settings["slides_to_scroll_tablet"] : 1,
],
(int) $viewport_lg => [
"slidesPerView" => isset( $settings["columns"] ) ? (int) $settings["columns"] : 3,
"spaceBetween" => $settings["items_gap"]["size"],
"slidesPerGroup" => isset( $settings["slides_to_scroll"] ) ? (int) $settings["slides_to_scroll"] : 1,
]
],
"navigation" => [
"nextEl" => "#" . $id . " .usk-navigation-next",
"prevEl" => "#" . $id . " .usk-navigation-prev",
],
"pagination" => [
"el" => "#" . $id . " .swiper-pagination",
"type" => $pagination_type,
"clickable" => "true",
'dynamicBullets' => ( "yes" == $settings["dynamic_bullets"] ) ? true : false,
],
"scrollbar" => [
"el" => "#" . $id . " .swiper-scrollbar",
"hide" => "true",
],
'coverflowEffect' => [
'rotate' => ( "yes" == $settings["coverflow_toggle"] ) ? $settings["coverflow_rotate"]["size"] : 50,
'stretch' => ( "yes" == $settings["coverflow_toggle"] ) ? $settings["coverflow_stretch"]["size"] : 0,
'depth' => ( "yes" == $settings["coverflow_toggle"] ) ? $settings["coverflow_depth"]["size"] : 100,
'modifier' => ( "yes" == $settings["coverflow_toggle"] ) ? $settings["coverflow_modifier"]["size"] : 1,
'slideShadows' => true,
],
] ) )
]
]
]
);
$swiper_class = Plugin::$instance->experiments->is_feature_active( 'e_swiper_latest' ) ? 'swiper' : 'swiper-container';
$this->add_render_attribute( 'swiper', 'class', 'swiper-carousel ' . $swiper_class );
?>
print_render_attribute_string( 'usk-carousel-wrapper' ); ?>>
print_render_attribute_string( 'carousel' ); ?>>
get_render_attribute_string( 'swiper' ) ); ?>>
is_on_sale() ) {
$percentage = '';
if ( $product->get_type() == 'variable' ) {
$available_variations = $product->get_variation_prices();
$max_percentage = 0;
foreach ( $available_variations['regular_price'] as $key => $regular_price ) {
$sale_price = $available_variations['sale_price'][ $key ];
if ( $sale_price < $regular_price ) {
$percentage = round( ( ( $regular_price - $sale_price ) / $regular_price ) * 100 );
if ( $percentage > $max_percentage ) {
$max_percentage = $percentage;
}
}
}
$percentage = $max_percentage;
} elseif ( ( $product->get_type() == 'simple' || $product->get_type() == 'external' ) ) {
$percentage = round( ( ( $product->get_regular_price() - $product->get_sale_price() ) / $product->get_regular_price() ) * 100 );
}
if ( $percentage ) {
printf( '
%1$s%2$s
', esc_html( $percentage ), esc_html__( '% off', 'ultimate-store-kit' ) );
}
}
}
protected function render_navigation() {
$settings = $this->get_settings_for_display();
$hide_arrow_on_mobile = $settings['hide_arrow_on_mobile'] ? ' bdt-visible@m' : '';
if ( 'arrows' == $settings['navigation'] ) : ?>
get_settings_for_display();
if ( 'dots' == $settings['navigation'] or 'arrows-fraction' == $settings['navigation'] ) : ?>
get_settings_for_display();
$hide_arrow_on_mobile = $settings['hide_arrow_on_mobile'] ? 'bdt-visible@m' : '';
?>
get_settings_for_display();
$hide_arrow_on_mobile = $settings['hide_arrow_on_mobile'] ? 'bdt-visible@m' : ''; ?>
get_settings_for_display(); ?>
render_both_navigation(); ?>
render_arrows_fraction(); ?>
render_pagination(); ?>
render_navigation(); ?>