%PDF- %PDF-
Direktori : /var/www/projetos/stb.ind.br/wp-content/themes/maxbizz/inc/woocommerce/ |
Current File : //var/www/projetos/stb.ind.br/wp-content/themes/maxbizz/inc/woocommerce/woocommerce.php |
<?php /** * WooCommerce Compatibility File * * @link https://woocommerce.com/ * * @package Maxbizz */ /** * WooCommerce setup function. * * @link https://docs.woocommerce.com/document/third-party-custom-theme-compatibility/ * @link https://github.com/woocommerce/woocommerce/wiki/Enabling-product-gallery-features-(zoom,-swipe,-lightbox)-in-3.0.0 * * @return void */ function maxbizz_woocommerce_setup() { add_theme_support( 'woocommerce' ); add_theme_support( 'wc-product-gallery-zoom' ); add_theme_support( 'wc-product-gallery-lightbox' ); add_theme_support( 'wc-product-gallery-slider' ); } add_action( 'after_setup_theme', 'maxbizz_woocommerce_setup' ); /** * WooCommerce specific scripts & stylesheets. * * @return void */ function maxbizz_woocommerce_scripts() { wp_enqueue_style( 'maxbizz-woocommerce-style', get_template_directory_uri() . '/css/woocommerce.css' ); if ( class_exists( 'woocommerce' ) ) { wp_enqueue_style( 'maxbizz-woocommerce-style' ); } } add_action( 'wp_enqueue_scripts', 'maxbizz_woocommerce_scripts' ); /** * Add 'woocommerce-active' class to the body tag. * * @param array $classes CSS classes applied to the body tag. * @return array $classes modified to include 'woocommerce-active' class. */ function maxbizz_woocommerce_active_body_class( $classes ) { $classes[] = 'woocommerce-active'; return $classes; } add_filter( 'body_class', 'maxbizz_woocommerce_active_body_class' ); /** * Product gallery thumnbail columns. * * @return integer number of columns. */ function maxbizz_woocommerce_thumbnail_columns() { return 4; } add_filter( 'woocommerce_product_thumbnails_columns', 'maxbizz_woocommerce_thumbnail_columns' ); /** * Related Products Args. * * @param array $args related products args. * @return array $args related products args. */ function maxbizz_woocommerce_related_products_args( $args ) { $defaults = array( 'posts_per_page' => 4, 'columns' => 4, ); $args = wp_parse_args( $defaults, $args ); return $args; } add_filter( 'woocommerce_output_related_products_args', 'maxbizz_woocommerce_related_products_args' ); /** * Remove the breadcrumbs */ add_action( 'init', 'maxbizz_wc_breadcrumbs' ); function maxbizz_wc_breadcrumbs() { remove_action( 'woocommerce_before_main_content', 'woocommerce_breadcrumb', 20, 0 ); add_action( 'maxbizz_woocommerce_breadcrumb', 'woocommerce_breadcrumb' ); } /** * Change several of the breadcrumb defaults */ add_filter( 'woocommerce_breadcrumb_defaults', 'maxbizz_woocommerce_breadcrumbs' ); function maxbizz_woocommerce_breadcrumbs() { return array( 'delimiter' => '', 'wrap_before' => '<ul id="breadcrumbs" class="breadcrumbs" itemprop="breadcrumb">', 'wrap_after' => '</ul>', 'before' => '<li>', 'after' => '</li>', 'home' => _x( 'Home', 'breadcrumb', 'maxbizz' ), ); } /** * Remove the product link */ 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 ); remove_action( 'woocommerce_shop_loop_item_title','woocommerce_template_loop_product_title', 10 ); add_action('woocommerce_shop_loop_item_title', 'maxbizz_change_products_title', 10 ); function maxbizz_change_products_title() { echo '<h2 class="woocommerce-loop-product__title"><a href="'.get_the_permalink().'">' . get_the_title() . '</a></h2>'; } /** * Remove default WooCommerce wrapper. */ remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10 ); remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10 ); if ( ! function_exists( 'maxbizz_woocommerce_wrapper_before' ) ) { /** * Before Content. * * Wraps all WooCommerce content in wrappers which match the theme markup. * * @return void */ function maxbizz_woocommerce_wrapper_before() { ?> <div id="primary" class="content-area <?php maxbizz_shop_content_columns(); ?>"> <main id="main" class="site-main" role="main"> <?php } } add_action( 'woocommerce_before_main_content', 'maxbizz_woocommerce_wrapper_before' ); if ( ! function_exists( 'maxbizz_woocommerce_wrapper_after' ) ) { /** * After Content. * * Closes the wrapping divs. * * @return void */ function maxbizz_woocommerce_wrapper_after() { ?> </main><!-- #main --> </div><!-- #primary --> <?php } } add_action( 'woocommerce_after_main_content', 'maxbizz_woocommerce_wrapper_after' ); /** * Sample implementation of the WooCommerce Mini Cart. * * You can add the WooCommerce Mini Cart to header.php like so ... * <?php if ( function_exists( 'maxbizz_woocommerce_header_cart' ) ) { maxbizz_woocommerce_header_cart(); } ?> */ if ( ! function_exists( 'maxbizz_woocommerce_cart_link_fragment' ) ) { /** * Cart Fragments. * * Ensure cart contents update when products are added to the cart via AJAX. * * @param array $fragments Fragments to refresh via AJAX. * @return array Fragments to refresh via AJAX. */ function maxbizz_woocommerce_cart_link_fragment( $fragments ) { ob_start(); maxbizz_woocommerce_cart_link(); $fragments['a.cart-contents'] = ob_get_clean(); return $fragments; } } add_filter( 'woocommerce_add_to_cart_fragments', 'maxbizz_woocommerce_cart_link_fragment' ); if ( ! function_exists( 'maxbizz_woocommerce_cart_link' ) ) { /** * Cart Link. * * Displayed a link to the cart including the number of items present and the cart total. * * @return void */ function maxbizz_woocommerce_cart_link() { ?> <a class="cart-contents ot-minicart" href="<?php echo wc_get_cart_url(); ?>" title="<?php esc_attr_e( 'View your shopping cart', 'maxbizz' ); ?>"> <i class="ot-flaticon-business"></i> <?php $item_count_text = sprintf( /* translators: number of items in the mini cart. */ _n( '%d', '%d', WC()->cart->get_cart_contents_count(), '_s' ), WC()->cart->get_cart_contents_count() ); ?> <span class="count"><?php echo esc_html( $item_count_text ); ?></span> </a> <?php } } //Get layout shop page. if ( ! function_exists( 'maxbizz_get_shop_layout' ) ) : function maxbizz_get_shop_layout() { // Get layout. if( is_product() ){ $page_layout = maxbizz_get_option( 'single_shop_layout' ); }else{ $page_layout = maxbizz_get_option( 'shop_layout' ); } return $page_layout; } endif; /** * Set the content width in pixels, based on the theme's design and stylesheet. * * Priority 0 to make it available to lower priority callbacks. * * @global int $content_width */ if ( ! function_exists( 'maxbizz_shop_content_columns' ) ) : function maxbizz_shop_content_columns() { $shop_content_width = array(); // Check if layout is one column. if ( 'content-sidebar' === maxbizz_get_shop_layout() && is_active_sidebar( 'shop-sidebar' ) ) { $shop_content_width[] = 'col-lg-9 col-md-9 col-sm-12 col-xs-12'; }elseif ('sidebar-content' === maxbizz_get_shop_layout() && is_active_sidebar( 'shop-sidebar' ) ) { $shop_content_width[] = 'col-lg-9 col-md-9 col-sm-12 col-xs-12 pull-right'; }else{ $shop_content_width[] = 'col-lg-12 col-md-12 col-sm-12 col-xs-12'; } // return the $classes array echo implode( ' ', $shop_content_width ); } endif; /** * Register widget area for shop page. * * @link https://developer.wordpress.org/themes/functionality/sidebars/#registering-a-sidebar */ function maxbizz_woocommerce_widgets_init() { register_sidebar( array( 'name' => __( 'Shop Sidebar', 'maxbizz' ), 'id' => 'shop-sidebar', 'before_widget' => '<section id="%1$s" class="widget %2$s">', 'after_widget' => '</section>', 'before_title' => '<h6 class="widget-title">', 'after_title' => '</h6>', ) ); } add_action( 'widgets_init', 'maxbizz_woocommerce_widgets_init' ); /* Customizer Shop */ function maxbizz_shop_customize_settings() { /** * Customizer configuration */ $settings = array( 'theme' => 'maxbizz', ); $panels = array(); $sections = array( 'single_product' => array( 'title' => esc_html__( 'Single Product', 'maxbizz' ), 'description' => '', 'priority' => 16, 'capability' => 'edit_theme_options', 'panel' => 'woocommerce', ), ); $fields = array( // Shop Page 'shop_layout' => array( 'type' => 'radio-image', 'label' => esc_html__( 'Shop Layout', 'maxbizz' ), 'section' => 'woocommerce_product_catalog', 'default' => 'content-sidebar', 'priority' => 7, 'description' => esc_html__( 'Select default sidebar for the shop page.', 'maxbizz' ), 'choices' => array( 'content-sidebar' => get_template_directory_uri() . '/inc/backend/images/right.png', 'sidebar-content' => get_template_directory_uri() . '/inc/backend/images/left.png', 'full-content' => get_template_directory_uri() . '/inc/backend/images/full.png', ) ), // Single Product Page 'single_shop_layout' => array( 'type' => 'radio-image', 'label' => esc_html__( 'Single Product Layout', 'maxbizz' ), 'section' => 'single_product', 'default' => 'content-sidebar', 'priority' => 1, 'choices' => array( 'content-sidebar' => get_template_directory_uri() . '/inc/backend/images/right.png', 'sidebar-content' => get_template_directory_uri() . '/inc/backend/images/left.png', 'full-content' => get_template_directory_uri() . '/inc/backend/images/full.png', ) ), 'page_title_product' => array( 'type' => 'text', 'label' => esc_html__( 'Title Page Header', 'maxbizz' ), 'section' => 'single_product', 'default' => 'Shop Single', 'priority' => 1, ), ); $settings['panels'] = apply_filters( 'maxbizz_customize_panels', $panels ); $settings['sections'] = apply_filters( 'maxbizz_customize_sections', $sections ); $settings['fields'] = apply_filters( 'maxbizz_customize_fields', $fields ); return $settings; } $maxbizz_customize = new Maxbizz_Customize( maxbizz_shop_customize_settings() );