Reklama sponsora

Woocommerce – Atrybuty i warianty



Woocommerce – atrybuty i warianty podstawy

Woocommerce nie bez powodu jest najpopularniejszych rozszerzeniem do WordPressa służącym do stawiania sklepów internetowych. Oprócz podstawowych funkcjonalności takich jak dodawanie, wyświetlanie i możliwość sprzedaży produktów ma także szereg funkcji dodatkowych. Jedną z takich funkcji są atrybuty produktu, na podstawie, których można tworzyć warianty. Możliwość dodawania i zarządzania atrybutami otwiera furtkę na kolejne możliwości jak sortowanie i filtrowanie po atrybutach oraz ustalanie różnych cen dla jednego produktu. Po prostu wachlarz możliwości jest spory, ale jak to ugryźć?

Konfiguracja atrybutów w kokpicie

Aby dodać atrybuty do produktu należy najpierw dodać je w woocommerce. Aby tego dokonać należy wybrać z menu kokpitu Produkty, Atrybuty.

Dodawanie atrybutu

Tutaj sprawa jest dość prosta, w zasadzie wystarczy podać nazwę atrybutu ale można tutaj także zdefiniować bezpośredni odnośnik, aktywować archiwa lub określić sortowanie. W moim przypadku potrzebuję dodać atrybut Pojemność, więc podaję nazwę i klikam „Dodaj atrybut”.

Po dodaniu atrybut powinien się pojawić w tabelce po prawej stronie, tam można kliknąć jego nazwę lub konfigurację taksonomii aby dodać możliwe do wyboru opcje.

atrybuty - lista

Ja na mojej stronie mam cztery flakoniki z perfumami, które występują w trzech wielkościach. Dlatego też dodaję trzy opcje.

Warto zwrócić uwagę że można tutaj także sortować atrybuty metodą przeciągnij i upuść, dzięki czemu będą się wyświetlały później na liście wyboru w produkcie w oczekiwanej kolejności.

Teraz kiedy mamy już zdefiniowane jakieś atrybuty możemy przejść do produktu.

Dodawania atrybutów i wariantów w produkcie

Kolejnym krokiem jest stworzenie wariantów produktów. Aby tego dokonać wchodzimy w wybrany produkt, zmieniamy Dane produktu na Produkt z wariantami , a następnie atrybuty tego produktu. Aby dodać wariant najpierw musimy dodać atrybuty na podstawie których utworzymy warianty, dlatego też taka kolejność jest wymagana.

Dodawanie atrybutów do produktu

Najpierw dodajemy atrybut, który określiliśmy wcześniej w moim przypadku wybieram pojemność i klikam „Dodaj”.

Dodawanie opcji atrybutu

Kolejnym krokiem jest dodanie wariantów atrybuty. W moim przypadku produkt będzie dostępny w trzech wariantach pojemnościowych a więc dodaję wszystkie w tym miejscu i zaznaczam opcję „Dla wariantów”. Klikam zapisz atrybuty i przechodzę do wariantów z menu tego panelu po lewej.

Tutaj możemy po prostu dodać wariant, co zapewne będzie stosowane w większości przypadków lub tak jak w moim przypadku można po prostu utworzyć warianty ze wszystkich atrybutów co oznacza że skoro mam trzy pojemności to zgodnie z tym co wcześniej zaznaczyłem utworzą mi się trzy warianty produktu 15ml, 50ml i 100ml.

Po wybraniu tej drugiej opcji system system zada pytania typu „czy na pewno” w moim przypadku zatwierdzam i idę dalej. Po dodaniu wariantów mam ich listę. W tym miejscu mogę rozwinąć taki wariant i uzupełnić całe mnóstwo opcji dla niego.

Warianty produktu

Tutaj koniecznie trzeba zapisać cenę regularną, jest to wymagane aby produkt był dostępny, należy to uzupełnić i zaktualizować.

No i chyba na tyle jeśli chodzi o atrybuty i warianty w panelu administratora, przynajmniej jeśli chodzi o podstawy podstaw. Teraz wypadałoby coś zakodować.

Jak pobrać atrybuty w kodzie PHP

Ogólnie dopisuję tutaj ciąg dalszy do mojego poprzedniego wpisu dlatego radzę się z nim także zapoznać.

Jeśli chodzi o pobranie wartości atrybutu lub listy nie jest to zbyt skomplikowane. Grunt to wiedzieć jaki atrybut chcemy pobrać jeśli chodzi o jeden z nich, a jego klucz/slug/taxonomię możemy odczytać z linku po wejściu w edycję danego atrybutu.

Link atrybutu

W tym przypadku moja taxonomia to będzie pa_pojemnosc. Te nazwy zazwyczaj zaczynają się od „pa_”. Skoro już to mam przechodzę do kodowania.


$attr_poj = $product->get_attribute( 'pa_pojemnosc' );
echo var_dump($attr_poj);

W ten sposób mogę pobrać atrybut i wyświetlić obiekt, który mi zwrócił.

Obiekt atrybutu

W ten sposób mogę wyświetlić dane warianty atrybutu produktu, czyli to co jest mi potrzebne w moim indywidualnym szablonie produktu.

Ale nic nie stoi nam na drodze żeby wyświetlić wszystkie atrybuty danego produktu, co pewnie będzie częściej wykorzystywane niż pojedynczy atrybut. W tym celu wykorzystujemy funkcję get_attributes(), która zwraca listę atrybutów produktu i tak gdybym chciał listę:


echo json_encode($product->get_attributes());

W ten sposób jedną linijką kodu pobieram i wyświetlam atrybuty w formacie json, ogólnie wolęten format niż var_dump, pewnie z przyzwyczajenia. Otrzymałem następujący wynik:

{„pa_pojemnosc”:{}}

Wykorzystując var_dump otrzymał bym:

array(1) { [„pa_pojemnosc”]=> object(WC_Product_Attribute)#10763 (1) { [„data”:protected]=> array(6) { [„id”]=> int(1) [„name”]=> string(12) „pa_pojemnosc” [„options”]=> array(3) { [0]=> int(18) [1]=> int(16) [2]=> int(17) } [„position”]=> int(0) [„visible”]=> bool(true) [„variation”]=> bool(true) } } }

czyli tablicę obiektów, tak więc przechodząc po elementach tablicy mogę wyświetlić wszystkie atrybuty danego produktu. To by chyba wyczerpywało temat atrybutów teraz czas przejść dalej

Jak pobrać warianty w PHP

W moim projekcie potrzebuję jeszcze informacje o wariantach produktu. Pobranie tych informacji także jest bardzo łatwe.


if ($product->is_type( 'variable' ))
{
$available_variations = $product->get_available_variations();
} else {
$available_variations = null;
}

W powyższym kodzie najpierw sprawdzam czy produkt w ogóle ma jakieś warianty a następnie przypisuję warianty do zmiennej. Ważne aby w panelu była podana cena wariantu inaczej funkcja nie zwróci dostępnych wariantów.

Powyższy kod możemy spokojnie umieścić w listingu produktów wraz z produktami bez wariantów. Dla mojego produktu z atrybutami pojemności otrzymam:

{ [0]=> array(24) { [„attributes”]=> array(1) { [„attribute_pa_pojemnosc”]=> string(5) „15-ml” } [„availability_html”]=> string(51) ”

Brak w magazynie

” [„backorders_allowed”]=> bool(false) [„dimensions”]=> array(3) { [„length”]=> string(0) „” [„width”]=> string(0) „” [„height”]=> string(0) „” } [„dimensions_html”]=> string(4) „brak” [„display_price”]=> float(25) [„display_regular_price”]=> float(25) [„image”]=> array(18) { [„title”]=> string(6) „obraz4” [„caption”]=> string(0) „” [„url”]=> string(64) „https://***/wp-content/uploads/2018/09/obraz4.png” [„alt”]=> string(0) „” [„src”]=> string(64) „https://****/wp-content/uploads/2018/09/obraz4.png” [„srcset”]=> string(148) „https://****/wp-content/uploads/2018/09/obraz4.png 500w, https://***/wp-content/uploads/2018/09/obraz4-300×270.png 300w” [„sizes”]=> string(31) „(max-width: 500px) 100vw, 500px” [„full_src”]=> string(64) „https://***/wp-content/uploads/2018/09/obraz4.png” [„full_src_w”]=> int(500) [„full_src_h”]=> int(450) [„gallery_thumbnail_src”]=> string(72) „https://****/wp-content/uploads/2018/09/obraz4-100×100.png” [„gallery_thumbnail_src_w”]=> int(100) [„gallery_thumbnail_src_h”]=> int(100) [„thumb_src”]=> string(72) „https://***/wp-content/uploads/2018/09/obraz4-300×300.png” [„thumb_src_w”]=> int(300) [„thumb_src_h”]=> int(300) [„src_w”]=> int(500) [„src_h”]=> int(450) } [„image_id”]=> string(2) „71” [„is_downloadable”]=> bool(false) [„is_in_stock”]=> bool(false) [„is_purchasable”]=> bool(true) [„is_sold_individually”]=> string(2) „no” [„is_virtual”]=> bool(false) [„max_qty”]=> string(0) „” [„min_qty”]=> int(1) [„price_html”]=> string(146) „£25.00” [„sku”]=> string(0) „” [„variation_description”]=> string(0) „” [„variation_id”]=> int(91) [„variation_is_active”]=> bool(true) [„variation_is_visible”]=> bool(true) [„weight”]=> string(0) „” [„weight_html”]=> string(4) „brak” } [1]=> array(24) { [„attributes”]=> array(1) { [„attribute_pa_pojemnosc”]=> string(5) „50-ml” } [„availability_html”]=> string(51) ”

….

Czyli tablicę wariantów z całą masą bardziej lub mniej użytecznych informacji. następnie mogę sobie pobrać jakąś interesującą mnie wartość na przykład cenę.


echo $available_variations[0]['display_regular_price'];

Powyższy kod wyświetli cenę pierwszego z wariantów, najlepiej wrzucić je w pętlę i w podobny sposób odnieść się do wszystkich.

To by chyba rozwiązywało większość problemów z atrybutami i wariantami, jeśli się mylę pisz na facebooku

 

Dodany przez reliable source cialis
2024-01-13 14:30:45

reliable source cialis reliable source cialis

Dodany przez citing a dissertation mla
2022-02-12 05:50:51

format for writing dissertation proposals https://helpon-doctoral-dissertations.net/

Dodany przez dissertation topics
2022-02-12 04:25:41

dissertation help methodology https://dissertations-writing.org/

Dodany przez writing dissertation conclusion
2022-02-12 00:44:14

undergraduate dissertation https://mydissertationwritinghelp.com/

Dodany przez writing implications in a dissertation
2022-02-11 21:44:17

help writting ed.d dissertation https://help-with-dissertations.com/

Dodany przez writing a dissertation in a day
2022-02-11 17:53:19

doctoral dissertation help 6th https://dissertationwriting-service.com/

Dodany przez citing a dissertation mla
2022-02-10 17:42:49

online dissertation writing services https://buydissertationhelp.com/

Dodany przez lucky slots 777 free play
2022-02-04 14:57:30

myvegas slots https://slotmachinegameinfo.com/

Dodany przez pit people more slots
2022-02-04 07:35:40

caesars slots https://411slotmachine.com/

Dodany przez caesars free slots online
2022-02-04 05:39:58

river slots app https://download-slot-machines.com/

Dodany przez free quarter slots
2022-02-04 02:07:45

best time to play slots https://beat-slot-machines.com/

Dodany przez quick hit slots free play
2022-02-03 23:29:48

free poker slots https://slot-machine-sale.com/

Dodany przez free slots no downloading
2022-02-03 17:20:27

free online slots games https://slotmachinesforum.net/

Dodany przez brian christopher slots
2022-01-29 09:04:58

free slots for fun https://slotmachinesworld.com/

Dodany przez fre slots
2022-01-29 05:35:58

free slots instant play https://pennyslotmachines.org/

Dodany przez las vegas slots
2022-01-29 00:53:55

free play slots online https://candylandslotmachine.com/

Dodany przez free penny slots vegas
2022-01-28 20:41:42

gsn casino slots https://freeonlneslotmachine.com/

Dodany przez free slots online
2022-01-28 19:58:49

borderlands map slots https://2-free-slots.com/

Dodany przez gay speed dating denver
2022-01-15 13:06:25

gay dating macho https://speedgaydate.com/

Dodany przez gay videeo chat
2022-01-14 20:36:58

free gay video chat r https://gay-buddies.com/

Dodany przez video chat older gay
2022-01-14 20:08:26

gay danish english chat rooms https://gaytgpost.com/

Dodany przez elderly gay men dating site
2022-01-14 16:35:46

gay dating professional bodybuilders https://gaypridee.com/

Dodany przez gay phone chat line phone numbers
2022-01-14 11:07:37

gay chat cahurbate https://bjsgaychatroom.info/

Dodany przez 1proposal
2022-01-12 22:12:39

2conditioned


Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *