Na jednom projektu klijent je želio mogućnost upisivanja predviđenog vremena dostave proizvoda. Vremenski razmak za isporuku proizvoda je varirao od proizvoda do proizvoda. Možda nekome dobro dođe u postojećem shopu ili u nekom budućem projektu. Kod možete dodati u functions.php datoteku aktivne teme ili skinuti plugin (na kraju članka).
Željenu funkcionalnost ćemo odraditi pomoću prilagođenih polja (custom fields).
Korištenje hookova
Za kreiranje custom fielda u shipping kartici koristiti ćemo hook woocommerce_product_options_shipping. Za spremanje vrijednosti custom fielda koristiti ćemo hook woocommerce_process_product_meta. Na kraju, za prikaz u frontendu ćemo koristiti woocommerce_after_single_variation woocommerce_after_add_to_cart_button.
Kreiranje prilagođenog polja
Unutar hooka moramo kreirati funkciju pomoću koje ćemo dodati novo polje. Koristiti ćemo postojeću, ugrađenu WooCommerce funkciju kako bi dodali polje za upisivanje teksta woocommerce_wp_text_input()
Spremanje prilagođenog polja
Kad smo kreirali novo polje u kartici dostave kreirati ćemo funkciju koja će spremiti upisane vrijednosti. Provjeriti ćemo je li nešto upisano u polje te ako isto nije prazno kreirati ćemo post meta uz pomoć funkcije update_post_meta().
EDIT 02.11.2016: Dodana je opcija za brisanje upisanih vrijednosti (delete_post_meta).
Prikaz vrijednosti prilagođenog polja na stranici proizvoda
Još nam preostaje rješiti prikaz podataka u frontendu. Najlogičnije mjesto za prikaz podataka o predviđenom periodu isporuke jest nakon gumba “Dodaj u košaricu” gdje se i inače prikazuju meta podaci poput kategorije,taga ili SKU-a. Zato ćemo našu funkciju ubaciti unutar hooka woocommerce_after_single_variation woocommerce_after_add_to_cart_button.
EDIT 02.11.2016: Kako bi se pravilno “zakačili” i na stranici Jednostavnog proizvoda koristiti ćemo hook woocommerce_after_add_to_cart_button.
Na stranici proizvoda, ukoliko ste upisali vrijednost u kartici dostave, to izgleda ovako:
WooCommerce plugin za prikaz predviđenog vremena isporuke proizvoda
Na webu možete pronaći nekoliko pluginova koji služe sličnoj svrsi. Izdvojio bih sjajan WooCommerce Shipping Estimates plugin kojeg je kreirala ekipa iz SkyVerge-a pomoću kojeg možete odrediti rok isporuke ovisno o metodi dostave. No, ako vam treba jednostavna funkcionalnost prikaza roka isporuke (po proizvodu), možete skinuti ovaj besplatan plugin. Također, plugin sadrži i lokalizacijske datoteke (.mo i .po) za hrvatski jezik.
Downloadajte ga, instalirajte ga kao svaki drugi plugin (upload zip datoteke) ili FTP klijentom povučete raspakirani folder plugina u wp-content/plugins folder i aktivirajte u adminu.
WooCommerce plugin za prikaz predviđenog vremena isporuke. Rok je moguće definirati za pojedinačne proizvode. v1.1
NAPOMENA: testirano na WordPressu 4.6.1, WooCommerce inačica 2.6.4, Storefront tema 2.1.3
EDIT 02.11.2016: Plugin ažuriran na verziju 1.1 koja sadrži fixeve za brisanje meta podataka i pravilan prikaz na stranicama Jednostavnih proizvoda.
Svaki komentar i share je dobro došao. Živili!