Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
subversal
/
video
/
wp-content
/
wp-includes
/
wp-includes
/
wp-content
/
themes
/
atlas
/
functions
/
plugin-integration
:
woocommerce.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php /** * Plugin woocommerce integration * * @package Atlas */ if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly } if ( TH90_WOOCOMMERCE_IS_ACTIVE ) { /* Add new class to product */ if ( ! function_exists( 'th90_woo_add_class_product' ) ) { function th90_woo_add_class_product( $classes, $product ) { $classes[] = 'post-item'; return $classes; } add_filter( 'woocommerce_post_class', 'th90_woo_add_class_product', 10, 2 ); add_filter( 'product_cat_class', 'th90_woo_add_class_product', 10, 3 ); } /* Icon Fonts */ if ( ! function_exists( 'th90_woo_icons' ) ) { function th90_woo_icons() { ob_start(); ?> @font-face { font-family: 'woo'; font-style: normal; font-weight: 400; font-display: swap; src: url(data:application/octet-stream;base64,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); } <?php return ob_get_clean(); } } /* Enqueue Custom Woo CSS */ if ( ! function_exists( 'th90_woo_custom_enqueue_style' ) ) { function th90_woo_custom_enqueue_style() { if ( ! is_admin() ) { wp_dequeue_style( 'woocommerce-general' ); wp_dequeue_style( 'woocommerce-layout' ); wp_dequeue_style( 'woocommerce-smallscreen' ); if ( is_rtl() ) { wp_enqueue_style( 'th90-woocommerce', get_template_directory_uri() . '/scss/woocommerce/css/woocommerce-rtl.css' ); } else { wp_enqueue_style( 'th90-woocommerce', get_template_directory_uri() . '/scss/woocommerce/css/woocommerce.css' ); } wp_add_inline_style( 'th90-woocommerce', wp_unslash( th90_minify_css( th90_woo_icons() ) ) ); } } } add_action( 'wp_enqueue_scripts', 'th90_woo_custom_enqueue_style' ); /* Remove Breadcrumb */ remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20 ); /* Remove Sidebar */ remove_action( 'woocommerce_sidebar', 'woocommerce_get_sidebar', 10 ); /* Product Per Page */ if ( ! function_exists( 'th90_loop_shop_per_page' ) ) { function th90_loop_shop_per_page( $cols ) { if ( th90_opt( 'shop_number' ) ) { return absint( th90_opt( 'shop_number' ) ); } return; } } add_filter( 'loop_shop_per_page', 'th90_loop_shop_per_page' ); /* Shop page title & Desc */ add_filter( 'woocommerce_show_page_title', function() { get_template_part( 'template-parts/page', 'title' ); } ); remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description', 10 ); remove_action( 'woocommerce_archive_description', 'woocommerce_product_archive_description', 10 ); /* Products pagination */ remove_action( 'woocommerce_after_shop_loop', 'woocommerce_pagination', 10 ); add_action( 'woocommerce_after_shop_loop', function() { th90_numeric_pagination( false, '<div class="nav-wrap nav-wrap-numeric text-center"><div class="nav-wrap-inner">', '</div></div>' ); }, 10 ); /* Wrapper Start */ remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10 ); add_action( 'woocommerce_before_main_content', function() { ?> <div id="primary" class="content-area"> <div class="container"> <div class="section-inner"> <main id="main" class="site-main" role="main"> <div class="main-area<?php echo esc_attr( th90_box() ); ?>"> <?php }, 10 ); /* Wrapper End */ remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10 ); add_action( 'woocommerce_after_main_content', function() { ?> </div> </main> <?php get_sidebar(); ?> </div> </div> </div> <?php }, 10 ); /* Category */ add_action( 'woocommerce_before_subcategory', function() { ?> <div class="entry-thumbnail"> <?php }, 11 ); add_action( 'woocommerce_before_subcategory_title', function() { ?> </div> <?php }, 11 ); /* Product */ remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 ); remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_product_link_close', 5 ); // Product Start add_action( 'woocommerce_before_shop_loop_item', function() { echo '<div class="woo-product">'; }, 5 ); // Product Thumbnail & Add to Cart add_action( 'woocommerce_before_shop_loop_item_title', function() { ?> <div class="entry-thumbnail"> <?php }, 5 ); add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_link_open', 6 ); add_action( 'woocommerce_before_shop_loop_item_title', 'woocommerce_template_loop_product_link_close', 14 ); add_action( 'woocommerce_before_shop_loop_item_title', function() { ?> </div> <?php }, 15 ); // Product Title remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title', 10 ); add_action( 'woocommerce_shop_loop_item_title', function() { ?> <h2 class="entry-title <?php echo esc_attr( th90_convert_tag( th90_opt( 'product_title_tag') ) ); ?>"> <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> </h2> <?php }, 10 ); // Product Rating Stars remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5 ); add_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_rating', 5 ); // Product Desc Start add_action( 'woocommerce_before_shop_loop_item_title', function() { ?> <div class="woo-desc post-desc"> <div class="post-desc-inner"> <?php }, 15 ); // Product Desc End add_action( 'woocommerce_after_shop_loop_item', function() { echo '</div></div>'; }, 15 ); // Product End add_action( 'woocommerce_after_shop_loop_item', function() { echo '</div>'; }, 20 ); // Product Category Desc Start add_action( 'woocommerce_shop_loop_subcategory_title', function() { ?> <div class="woo-desc post-desc"> <?php }, 5 ); // Product Category Desc End add_action( 'woocommerce_shop_loop_subcategory_title', function() { echo '</div>'; }, 15 ); /* Single Product */ add_action( 'woocommerce_product_thumbnails', function() { ?> <div class="thumbs-wrap"> <div class="thumbs-wrap-inner"> <?php }, 10 ); add_action( 'woocommerce_product_thumbnails', function() { ?> </div> </div> <?php }, 20 ); add_action( 'woocommerce_before_single_product_summary', function() { echo '<div class="summary-wrap">'; echo '<div class="summary-wrap-inner">'; }, 5 ); add_action( 'woocommerce_after_single_product_summary', function() { echo '</div>'; echo '</div>'; }, 5 ); // Single Product Title remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_title', 5 ); add_action( 'woocommerce_single_product_summary', function() { the_title( '<h1 class="page-title"><span class="entry-title">', '</span></h1>' ); }, 5 ); // Plus Minus Quantity add_action( 'woocommerce_before_quantity_input_field', function() { echo '<span class="arrow minus minus-btn is-link">-</span>'; }, 5 ); add_action( 'woocommerce_after_quantity_input_field', function() { echo '<span class="arrow plus plus-btn is-link">+</span>'; }, 5 ); // Remove tabs heading add_filter('woocommerce_product_description_heading', '__return_null'); add_filter('woocommerce_product_additional_information_heading', '__return_null'); /* Product Images/Gallery */ add_theme_support( 'wc-product-gallery-zoom' ); add_filter( 'woocommerce_get_image_size_gallery_thumbnail', function( $size ) { return array( 'width' => 300, 'height' => 300, 'crop' => 1, ); } ); add_filter( 'woocommerce_product_thumbnails_columns', function() { return absint( th90_opt( 'product_gallery_thumb' ) ); }, 10, 1 ); /* Product Shares */ add_action( 'woocommerce_share', function() { $social_shares_args = array( 'options_sufix' => 'post', 'style' => 'simple', ); echo '<div class="single-shares_bottom">'; echo '<div class="head-shares">' . esc_html__( 'Shares:', 'atlas' ). '</div>'; th90_the_social_shares( $social_shares_args ); echo '</div>'; }, 5 ); /* WooCommerce update Cart counter */ if( ! function_exists( 'th90_wc_cart_items_number' )){ add_filter( 'woocommerce_add_to_cart_fragments', 'th90_wc_cart_items_number' ); function th90_wc_cart_items_number( $fragments ){ $output = ''; $output .= '<span class="shopping-cart-counter count-' . WC()->cart->get_cart_contents_count() . '">'; $output .= WC()->cart->get_cart_contents_count(); $output .= '</span>'; $fragments['.shopping-cart-counter '] = $output; return $fragments; } } /* Change Sale To Percentage */ add_filter( 'woocommerce_sale_flash', 'th90_wc_sale_to_percentage', 20, 3 ); function th90_wc_sale_to_percentage( $html, $post, $product ) { if( $product->is_type('variable')){ $percentages = array(); // Get all variation prices $prices = $product->get_variation_prices(); // Loop through variation prices foreach( $prices['price'] as $key => $price ){ // Only on sale variations if( $prices['regular_price'][$key] !== $price ){ // Calculate and set in the array the percentage for each variation on sale $percentages[] = round( 100 - ( floatval($prices['sale_price'][$key]) / floatval($prices['regular_price'][$key]) * 100 ) ); } } // We keep the highest value $percentage = max($percentages) . '%'; } elseif( $product->is_type('grouped') ){ $percentages = array(); // Get all variation prices $children_ids = $product->get_children(); // Loop through variation prices foreach( $children_ids as $child_id ){ $child_product = wc_get_product($child_id); $regular_price = (float) $child_product->get_regular_price(); $sale_price = (float) $child_product->get_sale_price(); if ( $sale_price != 0 || ! empty($sale_price) ) { // Calculate and set in the array the percentage for each child on sale $percentages[] = round(100 - ($sale_price / $regular_price * 100)); } } // We keep the highest value $percentage = max($percentages) . '%'; } else { $regular_price = (float) $product->get_regular_price(); $sale_price = (float) $product->get_sale_price(); if ( $sale_price != 0 || ! empty($sale_price) ) { $percentage = round(100 - ($sale_price / $regular_price * 100)) . '%'; } else { return $html; } } return '<span class="meta_btn onsale">' . $percentage . '</span>'; } }