Atak na WordPress – Malware w header.php
22 grudnia 2014
Jak usunąć “Podsuma” – widget koszyk Woocommerce
26 stycznia 2015
Pokaż wszystkie

Jak wyświetlić krótki opis produktu Woocommerce?

Kiedy dodajesz/ edytujesz nowy produkt zapewne wypełniasz sumiennie wszystkie rubryczki (jeśli nie, to zacznij to robić, żeby wujek Google bardziej kochał twoją stronę niż sąsiada). Może zauważyłeś już, że czasem nie masz możliwości obejrzenia na stronie swojego szałowego krótkiego opisu, być może twój template tego nie przewiduje, a ty akurat bardzo, ale to bardzo bardzo chcesz żeby taki opis – owoc twojej ciężkiej pracy przeczytał potecjalny klient.

Screenshot_1

Żeby sobie dołożyć taki krótki opisik udaj się do pliku content-product.php

Poszukaj go w plikach templatki (nie plugins/woocommerce).

Jak już znalazłeś to widzisz, że jego “strategicznie” ważna część wygląda podobnie jak to:

<li <?php post_class( $classes ); ?><?php if($shop_thumb_a_type){ echo $animation_att;}?>>
<?php do_action( 'woocommerce_before_shop_loop_item' ); ?>
<?php woocommerce_show_product_loop_sale_flash(); ?>
<?php if ( ! $product->is_in_stock() ) : ?>
<span class="lpd-out-of-s<?php if ($product->is_on_sale()) { ?> on-sale-products<?php }?>"><?php _e( 'Out of Stock', GETTEXT_DOMAIN ); ?></span>
<?php endif; ?>
<div class="lpd-product-thumbnail">
<?php
/**
* woocommerce_before_shop_loop_item_title hook
*
* @hooked woocommerce_template_loop_product_thumbnail - 10
*/
do_action( 'woocommerce_before_shop_loop_item_title' );
?>
</div>
<h3><?php the_title(); ?></h3>
<?php
if($catalog_type!="purchases_prices"){
/**
* woocommerce_after_shop_loop_item_title hook
*
* @hooked woocommerce_template_loop_price - 10
*/
do_action( 'woocommerce_after_shop_loop_item_title' );
}
?>
<div class="clearfix"></div>
<?php
if(!$s_rating){
woocommerce_template_loop_rating();
}
?>
<?php do_action( 'woocommerce_after_shop_loop_item' ); ?>
</li>

Wcześniej też masz kod (o columnach itp – też ważne ale teraz chodzi nam o co innego).

Zajdź linię (możesz mieć inną klasę nagłówka (h2, h5 etc.):

 <h3><?php the_title(); ?></h3>

Tu (jak się pewnie domyślasz) Zaczyna się tytuł, mniej-więcej w tym momencie powinieneś wstawić swój kod (mniej-więcej, bo wszystko zależy od pomysłu templato-pisarza), możesz się jeszcze natknąć na jakiś thumbnail pod spodem lub inne tym podobne.

Kod do krótki opisów:

   <?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>

jeśli jednak nadal nie jesteś pewien w którym miejscu go wstawić to w przypadku działającej już strony:

1. Zrób kopię content-product.php

2. Wypij mocną kawę or (wersja dla hardcorów) nastaw sobie budzik i ciemną nocą kiedy w internecie i realnym świecie grasują tylko zombie (nawet Trolle już śpią).

3. Metodą prób i błędów wstawiaj i cofaj kod, aż znajdzie się we właściwym miejscu.

W przypadku strony nieopublikowanej pomiń pkt 2 😉

Dobra, ostatnia rzecz. Załóżmy, że znalazłeś już idealne miejsce na swój krótki opis, ale….nie wygląda ładnie?

Ostatnią rzeczą o której ci powiem, to własna klasa css dla tego elementu,

Pamiętaj

PHP bez klas to burak, a nie ananas.

Obuduj więc element w klasę css, przykładowo:

  <div class="short-desc">
<?php echo apply_filters( 'woocommerce_short_description', $post->post_excerpt ) ?>
</div>

Pamiętaj, tylko żeby stworzyć taką klasę w arkuszu styli, czyli czymś w rodzaju style.css, application.css, woocommerce.css, musisz zdać się na feeling w tej sprawie.

Stwórz coś w rodzaju:

.short-desc{
margin: 20px 0 0 20px;
}

Potem odpal sobie przeglądarkę (ok, wiem, że masz odpaloną skoro to czytasz) włącz inspectora (prawy klik – > zbadaj element) i kombinuj ze stylem tak, żeby było dobrze 😉

That’s all folks!

 

P.S. Jeśli chcesz dorzucić “Czytaj więcej” wrzuć coś w rodzaju tego kodu

<div class="wiecej">
<a href="<?php the_permalink();?>" class="btn btn-primary"><?php _e('Czytaj Więcej', GETTEXT_DOMAIN); ?></a>
</div>

 EDYCJA: Powyższy kod wyświetla krótkie opisy w każdym miejscu – nawet w Related Products/Powiązanych produktach/Polecanych Produktach, czyli tam gdzie zazwyczaj pojawiają się małe ikonki produktu, a i z miejscem jest cienko. Jeśli chcesz wyświetlać produkty tylko na stronie sklepowej, to powinieneś w conten-produkt.php użyć tego kodu:

<?php if (is_shop()) echo apply_filters( 'woocommerce_short_description', $post->post_excerpt )  ?>