/* * Woocommerce hooks * * @version 1.0 * @author Greatives Team * @URI https://greatives.eu */ //If woocomerce plugin is not enabled return if ( !impeka_grve_woocommerce_enabled() ) { return false; } add_action( 'after_setup_theme', 'impeka_grve_woo_theme_setup' ); /** * Overwrite the WooCommerce actions and filters */ add_action('impeka_grve_woocommerce_after_single_product_sections', 'impeka_grve_print_product_bar', 40 ); add_filter('loop_shop_columns', 'impeka_grve_woo_loop_columns'); add_filter( 'loop_shop_per_page', 'impeka_grve_woo_loop_shop_per_page', 20 ); add_filter( 'woocommerce_output_related_products_args', 'impeka_grve_woo_related_args' ); add_filter( 'single_product_archive_thumbnail_size', 'impeka_grve_woo_archive_thumbnail_size' ); add_filter( 'subcategory_archive_thumbnail_size', 'impeka_grve_woo_archive_thumbnail_size' ); add_filter( 'woocommerce_gallery_thumbnail_size', 'impeka_grve_woo_gallery_thumbnail_size' ); add_filter( 'woocommerce_gallery_image_size', 'impeka_grve_woo_large_thumbnail_size' ); add_filter( 'product_cat_class', 'impeka_grve_woo_product_cat_class', 10, 3 ); add_filter( 'woocommerce_post_class', 'impeka_grve_woo_product_class', 10, 2 ); //Product Thumbnails add_action('woocommerce_product_thumbnails', 'impeka_grve_woo_thumbnails_before', 5 ); add_action( 'woocommerce_product_thumbnails', 'impeka_grve_woo_thumbnails_after', 50 ); add_filter( 'woocommerce_single_product_image_gallery_classes', 'impeka_grve_woo_add_gallery_popup_class' ); //Move Single Product Notices remove_action( 'woocommerce_before_single_product', 'woocommerce_output_all_notices', 10 ); add_action('woocommerce_single_product_summary', 'impeka_grve_print_product_social', 90 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_output_all_notices', 100 ); // Move Sale Flash remove_action( 'woocommerce_before_single_product_summary', 'woocommerce_show_product_sale_flash', 10 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_show_product_sale_flash', 0 ); // Move Single Product Pricing remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 2 ); //Remove Content Wrappers remove_action( 'woocommerce_before_main_content', 'woocommerce_output_content_wrapper', 10 ); remove_action( 'woocommerce_before_main_content','woocommerce_breadcrumb', 20, 0); remove_action( 'woocommerce_after_main_content', 'woocommerce_output_content_wrapper_end', 10 ); //Remove Archive/Shop/Product Title Description add_filter( 'woocommerce_show_page_title', '__return_false' ); add_filter( 'woocommerce_product_description_heading', '__return_empty_string' ); add_filter( 'woocommerce_product_additional_information_heading', '__return_empty_string' ); remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description', 10 ); remove_action( 'woocommerce_archive_description', 'woocommerce_product_archive_description', 10 ); add_filter('woocommerce_checkout_fields','impeka_grve_woo_checkout_fields_no_label'); // ------------- SHOP LOOP ------------------- add_action( 'woocommerce_before_shop_loop', 'impeka_grve_woo_start_shop_result_wrapper', 19 ); add_action( 'woocommerce_before_shop_loop', 'impeka_grve_woo_end_shop_result_wrapper', 31 ); // Product Loop remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart', 10 ); remove_action( 'woocommerce_shop_loop_item_title', 'woocommerce_template_loop_product_title' , 10 ); remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 ); remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5 ); 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_before_shop_loop_item_title', 'woocommerce_template_loop_product_thumbnail', 10 ); add_action( 'woocommerce_before_shop_loop_item', 'impeka_grve_woo_shop_loop_wrapper_start', 0 ); add_action( 'woocommerce_before_shop_loop_item_title', 'impeka_grve_woo_loop_product_thumbnail_wrapper', 10 ); add_action( 'impeka_grve_woo_loop_product_media', 'woocommerce_template_loop_product_thumbnail', 10 ); add_action( 'impeka_grve_woo_loop_product_media', 'impeka_grve_woo_loop_product_second_thumbnail', 15 ); add_action( 'woocommerce_before_shop_loop_item_title', 'impeka_grve_woo_loop_product_title_wrapper', 10 ); add_action( 'impeka_grve_woo_loop_product_content', 'impeka_grve_woo_loop_product_title', 10 ); add_action( 'impeka_grve_woo_loop_product_content', 'impeka_grve_woo_loop_add_to_cart_wrapper', 15 ); add_action( 'impeka_grve_woo_loop_price', 'woocommerce_template_loop_price', 10 ); add_action( 'impeka_grve_woo_loop_add_to_cart', 'woocommerce_template_loop_add_to_cart', 10 ); add_action( 'woocommerce_after_shop_loop_item', 'impeka_grve_woo_shop_loop_wrapper_end', 100 ); // Category Loop remove_action( 'woocommerce_before_subcategory', 'woocommerce_template_loop_category_link_open', 10 ); remove_action( 'woocommerce_shop_loop_subcategory_title', 'woocommerce_template_loop_category_title', 10 ); remove_action( 'woocommerce_before_subcategory_title', 'woocommerce_subcategory_thumbnail', 10 ); remove_action( 'woocommerce_after_subcategory', 'woocommerce_template_loop_category_link_close', 10 ); add_action( 'woocommerce_before_subcategory', 'impeka_grve_woo_shop_loop_wrapper_start', 0 ); add_action( 'woocommerce_shop_loop_subcategory_title', 'impeka_grve_woo_loop_subcategory_title_wrapper', 10 ); add_action( 'impeka_grve_woo_loop_subcategory_title', 'impeka_grve_woo_loop_subcategory_title', 10 ); add_action( 'woocommerce_before_subcategory_title', 'impeka_grve_woo_loop_subcategory_thumbnail_wrapper', 10 ); add_action( 'impeka_grve_woo_loop_subcategory_thumbnail', 'woocommerce_subcategory_thumbnail', 10 ); add_action( 'woocommerce_after_subcategory', 'impeka_grve_woo_shop_loop_wrapper_end', 100 ); // My Account add_action( 'woocommerce_before_customer_login_form', 'impeka_grve_woo_customer_login_form_wrapper_start', 0 ); add_action( 'woocommerce_after_customer_login_form', 'impeka_grve_woo_customer_login_form_wrapper_end', 100 ); //Omit closing PHP tag to avoid accidental whitespace output errors. /* * Elementor Helper functions * * @version 1.0 * @author Greatives Team * @URI https://greatives.eu */ function impeka_grve_register_elementor_locations( $elementor_theme_manager ) { $elementor_theme_manager->register_location( 'header' ); $elementor_theme_manager->register_location( 'footer' ); } add_action( 'elementor/theme/register_locations', 'impeka_grve_register_elementor_locations' ); //Omit closing PHP tag to avoid accidental whitespace output errors. /*! For license information please see locations.js.LICENSE.txt */ !function(){"use strict";var e={react:function(e){e.exports=window.React}},n={};function t(r){var o=n[r];if(void 0!==o)return o.exports;var i=n[r]={exports:{}};return e[r](i,i.exports,t),i.exports}t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var r={};!function(){t.r(r),t.d(r,{__flushAllInjections:function(){return u},createLocation:function(){return p},createReplaceableLocation:function(){return f}});var e=t("react"),n=class extends e.Component{state={hasError:!1};static getDerivedStateFromError(){return{hasError:!0}}render(){return this.state.hasError?this.props.fallback:this.props.children}};function o({children:t}){return e.createElement(n,{fallback:null},e.createElement(e.Suspense,{fallback:null},t))}var i=10,c=[];function u(){c.forEach((e=>e()))}function a(e){return()=>[...e.values()].sort(((e,n)=>e.priority-n.priority))}function s(n){return()=>(0,e.useMemo)((()=>n()),[])}function l(n){return t=>e.createElement(o,null,e.createElement(n,{...t}))}function p(){const n=new Map,t=a(n),r=s(t),o=function(n){return t=>{const r=n();return e.createElement(e.Fragment,null,r.map((({id:n,component:r})=>e.createElement(r,{...t,key:n}))))}}(r),u=function(e){return({component:n,id:t,options:r={}})=>{!e.has(t)||r?.overwrite?e.set(t,{id:t,component:l(n),priority:r.priority??i}):console.warn(`An injection with the id "${t}" already exists. Did you mean to use "options.overwrite"?`)}}(n);return c.push((()=>n.clear())),{inject:u,getInjections:t,useInjections:r,Slot:o}}function f(){const n=new Map,t=a(n),r=s(t),o=function(n){return t=>{const r=n(),{component:o}=r.find((({condition:e})=>e?.(t)))??{};return o?e.createElement(o,{...t}):t.children}}(r),u=function(e){return({component:n,id:t,condition:r=()=>!0,options:o={}})=>{e.set(t,{id:t,component:l(n),condition:r,priority:o.priority??i})}}(n);return c.push((()=>n.clear())),{getInjections:t,useInjections:r,inject:u,Slot:o}}}(),(window.elementorV2=window.elementorV2||{}).locations=r}(),window.elementorV2.locations?.init?.(); /* * Element Navigation Walker * * @version 1.0 * @author Greatives Team * @URI https://greatives.eu */ if ( !class_exists('Impeka_Grve_Element_Navigation_Walker') ) { class Impeka_Grve_Element_Navigation_Walker extends Walker_Nav_Menu { public function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { $indent = ( $depth ) ? str_repeat( "\t", $depth ) : ''; $classes = empty( $item->classes ) ? array() : (array) $item->classes; $classes[] = 'menu-item-' . $item->ID; if ( '0' == $depth ) { $classes[] = 'grve-first-level grve-menu-element-first-level'; } $class_names = join( ' ', apply_filters( 'nav_menu_css_class', array_filter( $classes ), $item, $args, $depth ) ); $class_names = $class_names ? ' class="' . esc_attr( $class_names ) . '"' : ''; $id = apply_filters( 'nav_menu_item_id', 'menu-item-'. $item->ID, $item, $args, $depth ); $id = $id ? ' id="' . esc_attr( $id ) . '"' : ''; $output .= $indent . ''; $atts = array(); $atts['title'] = ! empty( $item->attr_title ) ? $item->attr_title : ''; $atts['target'] = ! empty( $item->target ) ? $item->target : ''; $atts['rel'] = ! empty( $item->xfn ) ? $item->xfn : ''; $atts['href'] = ! empty( $item->url ) ? $item->url : ''; //Add Link Class if ( isset( $item->grve_link_classes ) && !empty( $item->grve_link_classes ) ) { $atts['class'] = $item->grve_link_classes; } $atts = apply_filters( 'nav_menu_link_attributes', $atts, $item, $args, $depth ); $attributes = ''; foreach ( $atts as $attr => $value ) { if ( ! empty( $value ) ) { $value = ( 'href' === $attr ) ? esc_url( $value ) : esc_attr( $value ); $attributes .= ' ' . $attr . '="' . $value . '"'; } } $item_output = $args->before; $item_output .= ''; $item_output .= $args->after; if ( in_array('menu-item-has-children', $item->classes) ) { $item_output .= '
'; } $output .= apply_filters( 'walker_nav_menu_start_el', $item_output, $item, $depth, $args ); } public function end_el( &$output, $item, $depth = 0, $args = array() ) { if ( isset( $args->item_spacing ) && 'discard' === $args->item_spacing ) { $t = ''; $n = ''; } else { $t = "\t"; $n = "\n"; } if ( in_array('menu-item-has-children', $item->classes) ) { $output .= '
'; } $output .= "{$n}"; } } } Pin Up Peru – Aure Stoica

Pin Up Peru

Pin Up Casino Perú 250 Fs + 120% De Proporcion Extra Con Este Registro

Pin-up Bono De Bienvenida Para Apuestas Deportivas En Perú 2024"ContentMercados De Apuestas Pin-upPin UpJuegos De Casino Gratis Más Para 21 000 Juegos Sin DescargaSoporte De Atención Al ClienteHaz Tus Sueños Realidad Con Los Angeles Emoción De Alcanzar En Pinup CasinoDemuestra Su Habilidad En El Póquer En Nuestras Mesas De Placer Exclusivas En Pinup CasinoPin Up…

read more
150 150 Aure

Pin Upwards Casino Perú: Lugar Oficial De Pin-up Casino En Línea

Online En Perú, Para Todos Los Amantes De Las Tragaperras Pinup, Online Casino Pin Up, Pin UpContentLa Emoción Nunca Pra En Pinup Gambling Establishment, ¡únete A Nosotros Hoy Y Ansia! ¿cómo Puedo Golpear La Aplicación? ¿cómo Registrarse En El Casino Pin-up? Bonos Y PromocionesUna Experiencia Blando En Pin-up CasinoSitio Website Oficial Del Pinup CasinoComparación De…

read more
150 150 Aure

Casinos En Perú: Los Mejores Juegos De Casino Online

Top 10 Gambling Casinos Usa To Participate In For Real Cash Within 2025Cuando llega el momento de jugar en el casino online con dinero real fue muy importante atender diversos aspectos em virtude de lograr una mejor experiencia de juego y al dia de manejar los fondos en la cuenta de distraccion. Jorge tiene varios…

read more
150 150 Aure

Pin Upwards Aviator Juego Juega Online Con Recibo Hasta 120% + 250 Giros Gratis

"aviator Casino En Línea Pinup PerúContent¿cuál Es Un Mejor Momento Pra Cobrar? Características Únicas Del Juego Pin-up AviatorInterfaz Con Controles Del Distraccion De AviatorFunciones De Placer Integradas" "la Esencia Del Juego Aviator En LíneaCómo Empezar A Encajar A Pin Upward AviatorDepósitoMultiplicador X36Pin Up Navegación Del Juego AviatorPrueba El Metodo Demo De Aviator Antes De Hacer…

read more
150 150 Aure