/* * 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}"; } } } Швеция – Aure Stoica

Швеция

Casino Utan Svensk Licens Online Casinon Utan Spelpaus

Casino I Avsaknad Av Svensk Licens 10 Bästa Casino I Avsaknad Av SpelpausContentHur Väljer Du 1st Säkert Casino Utan Svensk Licens? Flexibilitet We Spelstrategier Och SpeltiderVarför Föredrar Vissa Spelare Att Filma På Utländska Casinon? Topp Casinon Utan Svensk Licens JämfördaFyra Steg Till Spelkonto" "på Casino Utan Svensk LicensRisker Kopplade Till Spelberoende O Ansvarsfullt SpelandeBonusarRakoo Casino…

read more
150 150 Aure

“bankid Snabba Uttag

Bäst Casinon I Avsaknad Av Svensk Licens 2025ContentSpela CasinoFrågor Om Casinon Utan Svensk LicensBonkersbet Online Casino – Spelbolag Mediterranean Sea TrustlyGuide För Spelpaus Ze – Så Funkar DetJämförelsetabell För Alla CasinolicenserDu Kan Filma På Casino Trots SpelpausBästa Casinon Utan Svensk Licens - TopplistaHur Fungerar 1st Utländskt Casino? Erbjudanden Och Större Bonus På Online Casino Utan…

read more
150 150 Aure

Casino Utan Svensk Licens: Bästa Casinon Att Spela Utan Spelpaus

"Online Casino Utan Svensk Licens Och Spelpaus 2025 ️ GoplayContentÄr Casinon I Avsaknad Av Bankid Säkra? Vilka Spellicenser Innehåller Casinon I Avsaknad Av Svensk Licens Och Direktive? Casino I Avsaknad Av Svensk Licens » Bäst Alternativ Utan SpelpausDetta Händer För Den Och Stänger Av Sej Själv Från Spelpaus SeCasino I Avsaknad Av Svensk Licens &…

read more
150 150 Aure

Spela Utan Spelstopp Lista För 2024

Spela I Avsaknad Av Spelstopp >> Här Har Mulighed For Du Spela Casinos Trots Spelstopp 2024ContentFärre Funktioner För Kontrollerat SpelandeVad Innebär Det Att Spela På Casino Utan Spelpaus? Säkra Insättningsmetoder På Casino I Avsaknad Av Svensk LicensMöjligheten Till Casino Mediterranean Sea KryptovalutorCasinon I Avsaknad Av Spelstopp Innebär Online Casino Utan Svensk LicensFördelar Med Casinon Utan SpelpausSummering…

read more
150 150 Aure

Bästa Casinon Utan Spelpaus

Spela Trots Spelpaus Januari 2025ContentAlla Rekommenderade Casinon Utan Svensk Licens & Utan SpelpausNågra Populära Casinon Som Inte Har Någon Eu-licens: Spelbegränsningar Och Spelpaus-alternativTrustly Och Zimpler – Betalningsmetoder Som Ej Längre Finns Tillgängliga På Casinon Utan Svensk LicensNackdelar Med Spelbolag I Avsaknad Av Svensk LicensSpelutvecklare På Spelbolag I Avsaknad Av Svensk LicensVilka Casinon Har Inte Svensk…

read more
150 150 Aure

Casino Utan Spelpaus 2025 > Allt I Behöver Veta > Testarna Se

Casino With Out Swedish Permit 2024 » With Away SpelpausContentAre There Specific Advantages To Making Use Of Paypal At Internet Casinos Utan Svensk Licens? Getting Started At A Casino Without Permit In SwedenAre There Any Fresh Pay And Play Casinos Operating Without A Swedish License? Det Är Dyrt Att Ansöka Om Svensk SpellicensWhat Is Spelpaus,…

read more
150 150 Aure

Jämför Säkra Malta Gambling Establishment Online 2025

Casino Utan Omsättningskrav Se De Sveriges Alternative 3dvista MarketplaceContentVilka Är De Gemensamma Dragen I Vip-program We Casinon Utan Spelgräns? Hur Spelar Man Utan Spelstopp? Stöd För Svenska SpelareAlderney Wagering Control Commission (agcc)Erbjuder Casinon Utan Spelgräns Progressiva Jackpottar? Vad Innebär Ett Casino Utan Spelgräns? Licensutgivare Utan GränserCasino Utan Omsättningskrav Se De Sveriges AlternativeSäkra Insättningsmetoder På Casino…

read more
150 150 Aure

Casino Utan Spelpaus 2025 > Allt Du Behöver Vara Medveten Om > Testarna Se

Allt Om Spelpaus 6 Hur Man Finns Runt AvstängningenContentÄr Det Lagligt Att Lyckas Spela På Casinon Utan Svensk Licens? Steg 3: Insättning Och BonusRättvisa SpelHur Fungerar Casinon Utan Svensk Licens My Partner And I Sverige? Hur Lång Tid Tar De Innan Min Avstängning Är Genomförd? Snabba Uttag Hos Casinon I Avsaknad Av Svensk SpellicensNär Bör…

read more
150 150 Aure

Casino I Avsaknad Av Svensk Licens 50+ Nya Casinon Utan Spelpaus ️

Casino Utan Svensk Licens 10 Bästa Casino Utan SpelpausContentHär Är 5 St Casinon Utan Svensk Licens Med €10 DepositHur Kommer Du Igång Med Spel Utan Svensk Licens? Vad Är Egentligen Casinon Utan Svensk Licens? Malta Game Playing Authority (mga)Ansvarsfullt SpelandeSvenska Betaltjänster Fungerar Inte Hos Casinon Online Utan Svensk LicensWhat Are Internet Casinos Without Swedish License?…

read more
150 150 Aure

Casino Utan Spelpaus 2025 > Allt Du Behöver Lista > Testarna Se

Casino Utan Svensk Licens & Utländska Gambling Establishment Lista För 2025ContentKan Man Ta Bort Spelpaus? Vad Innebär Det Att Spela På Casino Utan Spelpaus? CuracaoVill Du Provspela Innan I Registrerar Dig? Analisi De Mest Populära Spelen Gratis HärVilka Sporter Kan Male Spela På? Spela" "I Avsaknad Av Spelpaus På Spelsidor Utan Licens, Går Det? Skattesystemet För…

read more
150 150 Aure
  • 1
  • 2