Úvodní stránka › Fórum podpory WordPressu › Pluginy (funkčnost webu) › Woocommerce: Cenové rozpětí při variantách
Štítky: ceny, Varianty, WooCommerce, woocommerce_variable_price_html, woocommerce_variable_sale_price_html
Zvolené téma obsahuje celkem 7 odpovědí. Do diskuze (2 účastníci) se naposledy zapojil uživatel Landsman a poslední změna je stará 7 let, 7 měsíců.
-
AutorPříspěvky
-
12. září 2016 (14:10) #29006
Zdravím,
řešil jste někdo, jak zrušit výpis cenového rozpětí “1000 – 2000 Kč” pokud mají jednotlivé varianty produktu odlišné ceny?
Rád bych tam měl jednu cenu, která se bude měnit, což tam vlastně je, právě nad tím rozpětím.
Líbí se mi ale, že v rámci toho rozpětí jsou meta tagy s cenou a ona samostatná cena meta tagy nemá.
Ideální by tedy bylo zobrazit pouze první část cenového rozpětí a vše ostatní skrýt.
Přes CSS se to nedá, protože v případě jednoduchého produktu se skryje jeho cena a není tam žádná.
díky
13. září 2016 (11:18) #29021Nejsem si jist, zda rozumím :-( V případě variant se mi zobrazuje rozmezí ceny např. 120 – 150 Kč, ale žádná samostatná cena? Až když nějakou variantu vyberu, tak se mi dole (nad tlačítkem přidat do košíku) zobrazí konkrétní cena zvolené varianty, ale nevím, co máte na mysli “meta tagy”? Nebyl by nějaký screenshot nebo ideálně odkaz na ukázku? Skrýt půjde určitě cokoli, ale zatím si nejsem jist, co konkrétně zamýšlíte…
13. září 2016 (14:29) #29030<div class="price_block" itemprop="offers" itemscope="" itemtype="http://schema.org/Offer"> <p class="price"><span class="woocommerce-Price-amount amount">1 855<span class="woocommerce-Price-currencySymbol">Kč</span></span>–<span class="woocommerce-Price-amount amount">1 955<span class="woocommerce-Price-currencySymbol">Kč</span></span></p> <meta itemprop="price" content="1855"> <meta itemprop="priceCurrency" content="CZK"> <link itemprop="availability" href="http://schema.org/InStock"> </div>
Takto to vypadá
13. září 2016 (15:26) #29032Obrázek se nahrát nepodařilo? To ale asi nevadí, pokud jsem to dobře pochopil, tak chcete prostě skrýt vyšší cenu z uvedeného rozhraní? Tedy konkrétně tuto část:
–<span class="woocommerce-Price-amount amount">1 955<span class="woocommerce-Price-currencySymbol">Kč</span></span>
Asi bych to zkusil skrýt pomocí filtrů
woocommerce_variable_price_html
awoocommerce_variable_sale_price_html
(pro akční nabídky). Nějaké ukázky jak na to naleznete např. zde a další diskuzi zde (nezkoušel jsem ale ani jedno).13. září 2016 (21:50) #2903314. září 2016 (15:17) #29044Dejte prosím vědět i když to (ne)bude fungovat, docela by mě to také zajímalo :-)
18. září 2016 (19:59) #29127@admin Hooky jsou správně.
Vyřešeno prozatím na výpisu takto:
/** * Dont't show variable price range */ //add_filter( 'woocommerce_variable_sale_price_html', 'hide_variable_prices', PHP_INT_MAX, 2 ); add_filter( 'woocommerce_variable_price_html', 'hide_variable_prices', PHP_INT_MAX, 2 ); function hide_variable_prices($price, $context) { $display_price = $context->get_display_price(); $display_regular_price = $context->get_display_price( $context->get_regular_price() ); if ( $context->get_price() > 0 ) { if ( $context->is_on_sale() && $context->get_regular_price() ) { $price= $context->get_price_html_from_to( $display_regular_price, $display_price ) . $context->get_price_suffix(); $price = apply_filters( 'woocommerce_sale_price_html', $price, $context ); } else { $price = wc_price( $display_price ) . $context->get_price_suffix(); $price = apply_filters( 'woocommerce_price_html', $price, $context ); } } elseif ( $context->get_price() === '' ) { $price = apply_filters( 'woocommerce_empty_price_html', '', $context ); } elseif ( $context->get_price() == 0 ) { if ( $context->is_on_sale() && $context->get_regular_price() ) { $price .= $context->get_price_html_from_to( $display_regular_price, __( 'Free!', 'woocommerce' ) ); $price = apply_filters( 'woocommerce_free_sale_price_html', $price, $context ); } else { $price = '<span class="amount">' . __( 'Free!', 'woocommerce' ) . '</span>'; $price = apply_filters( 'woocommerce_free_price_html', $price, $context ); } } return $price; }
Na detailu produktu jsem cenu upravil Javascriptem.
19. září 2016 (13:05) #29135Ještě zasílání javascript, který mi řeší skrývání “from-to” ceny na produktu, pokud je vybrána cena varianty (byly by vidět na stránce 2). Woocommerce tam má naštěstí custom triggery, které jsem využil:
/** * Custom js for Woo */ jQuery( function( $ ) { var product = $("body").hasClass("single-product"); if(product) { var productType = $("#main div.product"); /** * Variants */ if(productType.hasClass("product-type-variable")) { $( ".variations_form" ).on( "woocommerce_variation_select_change", function () { // Fires whenever variation selects are changed\ $(".price_block").show(); } ); $( ".single_variation_wrap" ).on( "show_variation", function ( event, variation ) { // Fired when the user selects all the required dropdowns / attributes // and a final variation is selected / shown if(variation) { $(".price_block").hide(); } } ); } } });
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.