| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- // Opening Wrapper
- echo '<div class="fl-woocommerce-' . esc_attr( $settings->layout ) . '">';
- // Shortcodes
- $pages = array(
- 'cart' => '[woocommerce_cart]',
- 'checkout' => '[woocommerce_checkout]',
- 'tracking' => '[woocommerce_order_tracking]',
- 'account' => '[woocommerce_my_account]',
- );
- // WooCommerce Pages
- if ( isset( $pages[ $settings->layout ] ) ) {
- echo $pages[ $settings->layout ]; // xss ok
- }
- elseif ( $settings->layout == 'product' ) {
- add_filter( 'post_class', array( $module, 'single_product_post_class' ) );
- echo '[product id="' . esc_attr( $settings->product_id ) . '"]';
- remove_filter( 'post_class', array( $module, 'single_product_post_class' ) );
- } // Single Product Page
- elseif ( $settings->layout == 'product_page' ) {
- add_filter( 'post_class', array( $module, 'single_product_post_class' ) );
- echo '[product_page id="' . esc_attr( $settings->product_id ) . '"]';
- remove_filter( 'post_class', array( $module, 'single_product_post_class' ) );
- } // Add to Cart Button
- elseif ( $settings->layout == 'add-cart' ) {
- echo '[add_to_cart id="' . esc_attr( $settings->product_id ) . '" style=""]';
- } // Categories
- elseif ( $settings->layout == 'categories' ) {
- echo '[product_categories parent="' . esc_attr( $settings->parent_cat_id ) . '" columns="' . esc_attr( $settings->cat_columns ) . '"]';
- } // Multiple Products
- elseif ( $settings->layout == 'products' ) {
- add_filter( 'post_class', array( $module, 'products_post_class' ) );
- $query_args = array(
- 'post_type' => 'product',
- 'post_status' => 'publish',
- 'ignore_sticky_posts' => 1,
- 'posts_per_page' => $settings->num_products,
- 'orderby' => $settings->orderby,
- 'order' => $settings->order,
- 'meta_query' => WC()->query->get_meta_query(),
- 'tax_query' => WC()->query->get_tax_query(),
- );
- if ( $settings->products_source == 'ids' ) {
- $query_args['post__in'] = explode( ',', $settings->product_ids );
- } elseif ( $settings->products_source == 'category' ) {
- $query_args['tax_query'][] = array(
- array(
- 'taxonomy' => 'product_cat',
- 'terms' => array_map( 'sanitize_title', explode( ',', $settings->category_slug ) ),
- 'field' => 'slug',
- 'operator' => 'IN',
- ),
- );
- } elseif ( $settings->products_source == 'featured' ) {
- $tax_query[] = array(
- 'taxonomy' => 'product_visibility',
- 'field' => 'name',
- 'terms' => 'featured',
- 'operator' => 'IN',
- );
- } elseif ( $settings->products_source == 'sale' ) {
- $query_args['post__in'] = array_merge( array( 0 ), wc_get_product_ids_on_sale() );
- } elseif ( $settings->products_source == 'best-selling' ) {
- $query_args['meta_key'] = 'total_sales';
- $query_args['orderby'] = 'meta_value_num';
- } elseif ( $settings->products_source == 'top-rated' ) {
- add_filter( 'posts_clauses', array( 'WC_Shortcodes', 'order_by_rating_post_clauses' ) );
- }
- $products = new WP_Query( $query_args );
- $columns = intval( $settings->columns );
- $max_columns = $columns;
- if ( 0 === $columns ) {
- $columns = 4; // this is used for thumbnails only
- }
- $woocommerce_loop['columns'] = $columns;
- include locate_template( array( 'templates/woocommerce-scrollable/loop.php' ) );
- $products->reset_postdata();
- wp_reset_postdata();
- remove_filter( 'posts_clauses', array( 'WC_Shortcodes', 'order_by_rating_post_clauses' ) );
- remove_filter( 'post_class', array( $module, 'products_post_class' ) );
- }
- // Closing Wrapper
- echo '</div>';
|