| Server IP : 38.190.208.107 / Your IP : 216.73.217.46 Web Server : nginx/1.28.1 System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64 User : root ( 0) PHP Version : 8.2.28 Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /www/wwwroot/wp.3/wp-content/plugins/Ultimate_VC_Addons/woocomposer/modules/ |
Upload File : |
<?php
/**
* Design Loop Style - 01.
*
* @package Design Loop Style - 01.
*/
/**
* Woocomposer_loop_style01
*
* @param array $atts Attributes.
* @param array $element Element.
*/
function woocomposer_loop_style01( $atts, $element ) {
global $woocommerce;
$output = '';
$ult_dls_01_settings = shortcode_atts(
array(
'disp_type' => '',
'category' => '',
'shortcode' => '',
'product_style' => 'style01',
'display_elements' => '',
'quick_view_style' => 'expandable',
'label_on_sale' => 'Sale!',
'text_align' => 'left',
'img_animate' => 'rotate-clock',
'pagination' => '',
'color_heading' => '',
'color_categories' => '',
'color_price' => '',
'color_rating' => '',
'color_rating_bg' => '',
'color_quick_bg' => '',
'color_quick' => '',
'color_cart_bg' => '',
'color_on_sale_bg' => '',
'color_on_sale' => '',
'color_cart' => '',
'color_product_desc' => '',
'color_product_desc_bg' => '',
'size_title' => '',
'size_cat' => '',
'size_price' => '',
'border_style' => '',
'border_color' => '',
'border_size' => '',
'border_radius' => '',
'product_animation' => '',
'lazy_images' => '',
'advanced_opts' => '',
'sale_price' => '',
'on_sale_style' => 'wcmp-sale-circle',
'on_sale_alignment' => 'wcmp-sale-right',
'product_img_disp' => 'single',
),
$atts
);
$output = '';
$heading_style = '';
$cat_style = '';
$price_style = '';
$cart_style = '';
$cart_bg_style = '';
$view_style = '';
$view_bg_style = '';
$rating_style = '';
$desc_style = '';
$label_style = '';
$on_sale = '';
$class = '';
$style = '';
$border = '';
$desc_style = '';
$sale_price_size = '';
$text_align_style = '';
$image_size = apply_filters( 'single_product_large_thumbnail_size', 'shop_single' );
$ult_dls_01_settings['img_animate'] = 'wcmp-img-' . sanitize_key( $ult_dls_01_settings['img_animate'] );
if ( '' !== $ult_dls_01_settings['sale_price'] ) {
$sale_price_size = 'font-size:' . esc_attr( $ult_dls_01_settings['sale_price'] ) . 'px;';
}
if ( '' !== $ult_dls_01_settings['border_style'] ) {
$border .= 'border:' . intval( $ult_dls_01_settings['border_size'] ) . 'px ' . esc_attr( $ult_dls_01_settings['border_style'] ) . ' ' . esc_attr( $ult_dls_01_settings['border_color'] ) . ';';
$border .= 'border-radius:' . intval( $ult_dls_01_settings['border_radius'] ) . 'px;';
}
if ( '' !== $ult_dls_01_settings['color_product_desc_bg'] ) {
$desc_style .= 'background:' . sanitize_html_class( $ult_dls_01_settings['color_product_desc_bg'] ) . ';';
}
if ( '' !== $ult_dls_01_settings['color_product_desc'] ) {
$desc_style .= 'color:' . sanitize_html_class( $ult_dls_01_settings['color_product_desc'] ) . ';';
}
$columns = 3;
$display_type = $ult_dls_01_settings['disp_type'];
if ( '' !== $ult_dls_01_settings['color_heading'] ) {
$heading_style = 'color:' . sanitize_text_field( $ult_dls_01_settings['color_heading'] ) . ';';
}
if ( '' !== $ult_dls_01_settings['size_title'] ) {
$heading_style .= 'font-size:' . intval( $ult_dls_01_settings['size_title'] ) . 'px;';
}
if ( '' !== $ult_dls_01_settings['color_categories'] ) {
$cat_style = 'color:' . esc_attr( $ult_dls_01_settings['color_categories'] ) . ';';
}
if ( '' !== $ult_dls_01_settings['size_cat'] ) {
$cat_style .= 'font-size:' . intval( $ult_dls_01_settings['size_cat'] ) . 'px;';
}
if ( '' !== $ult_dls_01_settings['color_price'] ) {
$price_style = 'color:' . esc_attr( $ult_dls_01_settings['color_price'] ) . ';';
}
if ( '' !== $ult_dls_01_settings['size_price'] ) {
$price_style .= 'font-size:' . intval( $ult_dls_01_settings['size_price'] ) . 'px;';
}
if ( '' !== $ult_dls_01_settings['color_rating'] ) {
$rating_style .= 'color:' . esc_attr( $ult_dls_01_settings['color_rating'] ) . ';';
}
if ( '' !== $ult_dls_01_settings['color_rating_bg'] ) {
$rating_style .= 'background:' . esc_attr( $ult_dls_01_settings['color_rating_bg'] ) . ';';
}
if ( '' !== $ult_dls_01_settings['color_quick_bg'] ) {
$view_bg_style = 'background:' . esc_attr( $ult_dls_01_settings['color_quick_bg'] ) . ';';
}
if ( '' !== $ult_dls_01_settings['color_quick'] ) {
$view_style = 'color:' . sanitize_text_field( $ult_dls_01_settings['color_quick'] ) . ';';
}
if ( '' !== $ult_dls_01_settings['color_cart_bg'] ) {
$cart_bg_style = 'background:' . esc_attr( $ult_dls_01_settings['color_cart_bg'] ) . ';';
}
if ( '' !== $ult_dls_01_settings['color_cart'] ) {
$cart_style = 'color:' . esc_attr( $ult_dls_01_settings['color_cart'] ) . ';';
}
if ( '' !== $ult_dls_01_settings['color_on_sale_bg'] ) {
$label_style = 'background:' . esc_attr( $ult_dls_01_settings['color_on_sale_bg'] ) . ';';
}
if ( '' !== $ult_dls_01_settings['color_on_sale'] ) {
$label_style .= 'color:' . esc_attr( $ult_dls_01_settings['color_on_sale'] ) . ';';
}
$elemets = explode( ',', $ult_dls_01_settings['display_elements'] );
if ( 'grid' == $element ) {
$paged = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1;
} else {
$paged = 1;
}
$post_count = '12';
if ( '' !== $ult_dls_01_settings['shortcode'] ) {
$new_shortcode = rawurldecode( base64_decode( wp_strip_all_tags( $ult_dls_01_settings['shortcode'] ) ) ); //phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode
}
$pattern = get_shortcode_regex();
$shortcode_str = '';
$short_atts = '';
preg_match_all( '/' . $pattern . '/', $new_shortcode, $matches );
$shortcode_str = str_replace( '"', '', str_replace( ' ', '&', trim( $matches[3][0] ) ) );
parse_str( $shortcode_str, $short_atts );
if ( isset( $matches[2][0] ) ) :
$display_type = $matches[2][0];
else :
$display_type = '';
endif;
if ( ! isset( $columns ) ) :
$columns = '4';
endif;
if ( isset( $per_page ) ) :
$post_count = $per_page;
endif;
if ( isset( $number ) ) :
$post_count = $number;
endif;
if ( ! isset( $order ) ) :
$order = 'asc';
endif;
if ( ! isset( $orderby ) ) :
$orderby = 'date';
endif;
if ( ! isset( $ult_dls_01_settings['category'] ) ) :
$ult_dls_01_settings['category'] = '';
endif;
if ( ! isset( $ids ) ) :
$ids = '';
endif;
if ( $ids ) {
$ids = explode( ',', $ids );
$ids = array_map( 'trim', $ids );
}
$col = $columns;
if ( '2' == $columns ) {
$columns = 6;
} elseif ( '3' == $columns ) {
$columns = 4;
} elseif ( '4' == $columns ) {
$columns = 3;
}
$meta_query = '';
if ( 'recent_products' == $display_type ) {
$meta_query = WC()->query->get_meta_query();
}
if ( 'featured_products' == $display_type ) {
$meta_query = array(
array(
'key' => '_visibility',
'value' => array( 'catalog', 'visible' ),
'compare' => 'IN',
),
array(
'key' => '_featured',
'value' => 'yes',
),
);
}
if ( 'top_rated_products' == $display_type ) {
add_filter( 'posts_clauses', array( WC()->query, 'order_by_rating_post_clauses' ) );
$meta_query = WC()->query->get_meta_query();
}
$args = array(
'post_type' => 'product',
'post_status' => 'publish',
'ignore_sticky_posts' => 1,
'posts_per_page' => $post_count,
'orderby' => $orderby,
'order' => $order,
'paged' => $paged,
'meta_query' => $meta_query, //PHPCS:Ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query
);
if ( 'sale_products' == $display_type ) {
$product_ids_on_sale = woocommerce_get_product_ids_on_sale();
$meta_query = array();
$meta_query[] = $woocommerce->query->visibility_meta_query();
$meta_query[] = $woocommerce->query->stock_status_meta_query();
$args['meta_query'] = $meta_query; // PHPCS:Ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query
$args['post__in'] = $product_ids_on_sale;
}
if ( 'best_selling_products' == $display_type ) {
$args['meta_key'] = 'total_sales';
$args['orderby'] = 'meta_value_num';
$args['meta_query'] = array( // PHPCS:Ignore WordPress.DB.SlowDBQuery.slow_db_query_meta_query
array(
'key' => '_visibility',
'value' => array( 'catalog', 'visible' ),
'compare' => 'IN',
),
);
}
if ( 'product_category' == $display_type ) {
$args['tax_query'] = array( // PHPCS:Ignore WordPress.DB.SlowDBQuery.slow_db_query_tax_query
array(
'taxonomy' => 'product_cat',
'terms' => array( esc_attr( $ult_dls_01_settings['category'] ) ),
'field' => 'slug',
'operator' => 'IN',
),
);
}
if ( 'product_categories' == $display_type ) {
$args['tax_query'] = array( // PHPCS:Ignore WordPress.DB.SlowDBQuery.slow_db_query_tax_query
array(
'taxonomy' => 'product_cat',
'terms' => $ids,
'field' => 'term_id',
'operator' => 'IN',
),
);
}
$test = '';
if ( vc_is_inline() ) {
$test = 'wcmp_vc_inline';
}
if ( '' == $ult_dls_01_settings['product_animation'] ) {
$ult_dls_01_settings['product_animation'] = 'no-animation';
} else {
$style .= 'opacity:1;';
}
if ( 'grid' == $element ) {
$class = 'vc_span' . $columns . ' ';
}
$output .= '<div class="woocomposer ' . $test . '" data-columns="' . $col . '">';
$query = new WP_Query( $args );
if ( $query->have_posts() ) :
while ( $query->have_posts() ) :
$query->the_post();
$product_id = get_the_ID();
$uid = uniqid();
$output .= '<div id="product-' . $uid . '" style="' . $style . '" class="' . $class . ' wpb_column column_container wooproduct" data-animation="animated ' . esc_attr( $ult_dls_01_settings['product_animation'] ) . '">';
if ( 'carousel' == $element ) {
$output .= '<div class="wcmp-carousel-item">';
}
$product_title = get_the_title( $product_id );
$post = get_post( $product_id );
$product_desc = get_post( $product_id )->post_excerpt;
$product_img = wp_get_attachment_image_src( get_post_thumbnail_id( $product_id ), $image_size );
$product = new WC_Product( $product_id );
$attachment_ids = $product->get_gallery_attachment_ids();
$price = $product->get_price_html();
$rating = $product->get_rating_html();
$attributes = $product->get_attributes();
$stock = $product->is_in_stock() ? 'InStock' : 'OutOfStock';
if ( $product->is_on_sale() ) :
$on_sale = apply_filters( 'woocommerce_sale_flash', $ult_dls_01_settings['label_on_sale'], $post, $product );
else :
$on_sale = '';
endif;
if ( 'expandable' == $ult_dls_01_settings['quick_view_style'] ) {
$quick_view_class = 'quick-view-loop';
} else {
$quick_view_class = 'quick-view-loop-popup';
}
$cat_count = count( get_the_terms( $product_id, 'product_cat' ) );
$tag_count = count( get_the_terms( $product_id, 'product_tag' ) );
$categories = $product->get_categories( ', ', '<span class="posted_in">' . $cat_count . ' ', '.</span>' );
$tags = $product->get_tags( ', ', '<span class="tagged_as">' . $tag_count . ' ', '.</span>' );
$output .= "\n" . '<div class="wcmp-product woocommerce wcmp-' . esc_attr( $ult_dls_01_settings['product_style'] ) . ' ' . esc_attr( $ult_dls_01_settings['img_animate'] ) . '" style="' . $border . ' ' . esc_attr( $desc_style ) . '">';
$output .= "\n\t" . '<div class="wcmp-product-image">';
if ( empty( $attachment_ids ) && count( $attachment_ids ) > 1 && 'carousel' == $ult_dls_01_settings['product_img_disp'] ) {
$uniqid = uniqid();
$output .= '<div class="wcmp-single-image-carousel carousel-in-loop">';
$product_img = wp_get_attachment_image_src( get_post_thumbnail_id( $product_id ), $image_size );
if ( 'enable' == $ult_dls_01_settings['lazy_images'] ) {
$src = UAVC_URL . 'assets/img/loader.gif';
} else {
$src = $product_img[0];
}
$output .= '<div><div class="wcmp-image"><img class="wcmp-img" src="' . $src . '" data-src="' . $product_img[0] . '"/></div></div>';
foreach ( $attachment_ids as $attachment_id ) {
$product_img = wp_get_attachment_image_src( $attachment_id, $image_size );
if ( 'enable' == $ult_dls_01_settings['lazy_images'] ) {
$src = UAVC_URL . 'assets/img/loader.gif';
} else {
$src = $product_img[0];
}
$output .= '<div><div class="wcmp-image"><img class="wcmp-img" src="' . $src . '" data-src="' . $product_img[0] . '"/></div></div>';
}
$output .= '</div>';
} else {
$product_img = wp_get_attachment_image_src( get_post_thumbnail_id( $product_id ), $image_size );
if ( 'enable' == $ult_dls_01_settings['lazy_images'] ) {
$src = UAVC_URL . 'assets/img/loader.gif';
} else {
$src = $product_img[0];
}
$output .= '<a href="' . get_permalink( $product_id ) . '"><img class="wcmp-img" src="' . $src . '" data-src="' . $product_img[0] . '"/></a>';
}
if ( 'OutOfStock' == $stock ) {
$output .= "\n" . '<span class="wcmp-out-stock">' . __( 'Out Of Stock!', 'woocomposer' ) . '</span>';
}
if ( '' !== $on_sale ) {
$output .= "\n" . '<div class="wcmp-onsale ' . esc_attr( $ult_dls_01_settings['on_sale_alignment'] ) . ' ' . esc_attr( $ult_dls_01_settings['on_sale_style'] ) . '"><span class="onsale" style="' . esc_attr( $label_style ) . ' ' . esc_attr( $sale_price_size ) . '">' . $on_sale . '</span></div>';
}
$output .= '<div class="wcmp-add-to-cart" style="' . esc_attr( $cart_bg_style ) . '"><a style="' . esc_attr( $cart_style ) . '" title="Add to Cart" href="?add-to-cart=' . $product_id . '" rel="nofollow" data-product_id="' . $product_id . '" data-product_sku="" class="add_to_cart_button product_type_simple"><i class="wooicon-cart4"></i></a></div>';
if ( in_array( 'quick', $elemets ) ) {
$output .= '<div class="wcmp-quick-view ' . $quick_view_class . '" style="' . esc_attr( $view_bg_style ) . '"><a style="' . esc_attr( $view_style ) . '" title="Quick View" href="' . get_permalink( $product_id ) . '"><i class="wooicon-plus32"></i></a></div>';
}
if ( in_array( 'reviews', $elemets ) ) {
$output .= "\n" . '<div class="wcmp-star-ratings" style="' . esc_attr( $rating_style ) . '">' . $rating . '</div>';
}
$output .= '</div>';
if ( '' !== $ult_dls_01_settings['text_align'] ) {
$text_align_style = 'text-align:' . esc_attr( $ult_dls_01_settings['text_align'] ) . ';';
}
$output .= "\n\t" . '<div class="wcmp-product-desc" style="' . esc_attr( $text_align_style ) . '">';
$output .= '<a href="' . get_permalink( $product_id ) . '">';
$output .= "\n\t\t" . '<h2 style="' . esc_attr( $heading_style ) . '">' . $product_title . '</h2>';
$output .= '</a>';
if ( in_array( 'category', $elemets ) ) {
$output .= '<h5 style="' . esc_attr( $cat_style ) . '">';
if ( '' !== $categories ) {
$output .= $categories;
$output .= $tags;
}
$output .= '</h5>';
}
$output .= "\n\t\t" . '<div class="wcmp-price"><span class="price" style="' . esc_attr( $price_style ) . '">' . $price . '</span></div>';
if ( in_array( 'description', $elemets ) ) {
$output .= "\n\t\t" . '<div class="wcmp-product-content" style="' . esc_attr( $desc_style ) . '">' . $product_desc . '</div>';
}
$output .= "\n\t" . '</div>';
$output .= "\n\t" . '</div>';
if ( in_array( 'quick', $elemets ) ) {
$output .= '<div class="wcmp-quick-view-wrapper" data-columns="' . $col . '">';
if ( 'expandable' !== $ult_dls_01_settings['quick_view_style'] ) {
$output .= '<div class="wcmp-quick-view-wrapper woocommerce product">';
$output .= '<div class="wcmp-close-single"><i class="wooicon-cross2"></i></div>';
}
if ( ! empty( $attachment_ids ) && count( $attachment_ids ) > 1 ) {
$uniqid = uniqid();
$output .= '<div class="slider wcmp-image-carousel wcmp-carousel-' . $uniqid . '" data-class="wcmp-carousel-' . $uniqid . '">';
foreach ( $attachment_ids as $attachment_id ) {
$product_img = wp_get_attachment_image_src( $attachment_id, $image_size );
if ( 'enable' == $ult_dls_01_settings['lazy_images'] ) {
$src = UAVC_URL . 'assets/img/loader.gif';
} else {
$src = $product_img[0];
}
$output .= '<div><div class="wcmp-image"><img class="wcmp-img" src="' . $src . '" data-src="' . $product_img[0] . '"/></div></div>';
}
$output .= '</div>';
} else {
$product_img = wp_get_attachment_image_src( get_post_thumbnail_id( $product_id ), $image_size );
if ( 'enable' == $ult_dls_01_settings['lazy_images'] ) {
$src = UAVC_URL . 'assets/img/loader.gif';
} else {
$src = $product_img[0];
}
$output .= '<div class="wcmp-single-image wcmp-quickview-img images"><img class="wcmp-img" src="' . $src . '" data-src="' . $product_img[0] . '"/></div>';
}
if ( 'expandable' !== $ult_dls_01_settings['quick_view_style'] ) {
$output .= '<div class="wcmp-product-content-single">';
} else {
$output .= '<div class="wcmp-product-content">';
}
ob_start();
do_action( 'woocommerce_single_product_summary' );
$output .= ob_get_clean();
$output .= '</div>';
$output .= '<div class="clear"></div>';
if ( 'expandable' !== $ult_dls_01_settings['quick_view_style'] ) {
$output .= '</div>';
}
$output .= '</div>';
}
$output .= "\n" . '</div>';
if ( 'carousel' == $element ) {
$output .= "\n\t" . '</div>';
}
endwhile;
endif;
if ( 'enable' == $ult_dls_01_settings['pagination'] ) {
$output .= '<div class="wcmp-paginate">';
$output .= woocomposer_pagination( $query->max_num_pages );
$output .= '</div>';
}
$output .= '</div>';
if ( 'top_rated_products' == $display_type ) {
remove_filter( 'posts_clauses', array( WC()->query, 'order_by_rating_post_clauses' ) );
}
wp_reset_postdata();
return $output;
}