Úvodní stránka › Fórum podpory WordPressu › Pluginy (funkčnost webu) › CSS menu s prvkem z jiného pluginu
Štítky: Menu, WooCommerce
Zvolené téma obsahuje celkem 4 odpovědi. Do diskuze (2 účastníci) se naposledy zapojil uživatel provox a poslední změna je stará 8 let, 1 měsíc.
-
AutorPříspěvky
-
10. února 2016 (20:37) #26510
Ahoj všichni,
řeším trochu zapeklitější problém, napsal jsem si HTML/CSS menu s externím JS podle svých představ, které vkládám do stránek skrz WIDGET TEXT. Zasekl jsem se však v situaci, kdy jsem se rozhodl menu trochu obohatit jednou funkcí, kterou disponuje plugin WOOCOMMERCE. Jde konkrétně o to, že k rodičovským položkám menu bych rád přiřadil counter se součtem položek v dané kategorii. Ve WOOCOMMERCE jsem tuto funkci našel napsanou v souborech:
class-product-cat-dropdown-walker.php class-product-cat-list-walker.php
Dokázal by mi někdo poradit, jak tohle zkombinovat? Budu nucený napsat nový plugin (nemám zkušenost ani potřebný um a v php umím jen trochu číst)? Nebo se budu moci nějak odkázat do daného pluginu?
Předem děkuji za odpovědi,
Provox10. února 2016 (21:27) #26517Omlouvám se, ale bohužel moc nerozumím, v čem je konkrétně problém? Někde se něco špatně zobrazuje? Nebyla by přímo nějaká ukázka?
Zkusím to shrnout: Máte nějaké vlastní menu s napojeným externím JavaScriptem, který něco (?) dělá, a vkládáte ho na web v podobě textového widgetu? Takže do widgetu nakopírujete celé HTML včetně JavaScriptu (a vše je statické)? A zároveň chcete použít funkce pro zobrazení kategorií z WooCommerce, které u každé kategorie zobrazují počet zařazených produktů? Nestačilo by tedy ten externí JavaScript napojit na tento widget s kategoriemi? Musel bych to asi přímo někde vidět, abych mohl navrhnout možné řešení, takto si bohužel nedokážu představit, co by bylo lepší…
10. února 2016 (22:05) #26523V pořádku, zkusím to ještě jinak:
To že mám HTML/CSS s ext. JS je v podstatě jen konkrétní informace, čeho se propojení bude týkat. Menu je plně funkční, dělá vše co má (k vložení do stránek jsem využil právě WIDGET TEXT).
“ALE” – potřeboval bych jednu funkci, kterou napsat neumím. Tuto funkci jsem našel ve WIDGETU statického menu od WOOCOMMERCE. Jedná se o výše zmiňovaný counter.
Mou představou tedy je, přejmutí funkce COUNTER z WOOCOMMERCE a vložení do mého vlastního menu. Problémem je, že nevím jak. Navíc, momentálně si uvědomuji, že WOOCOMMERCE vygeneruje celé menu s COUNTERem u každé rodičovské kategorie, já však potřebuji, aby mi kód vygeneroval COUNTER jen ke kategorii, kterou si zvolím (myslím, že jsem se právě odepsal :D). Rád bych vám to předvedl, avšak web mi běží offline na serveru v PC. Takže posílám alespoň graficky upravené screeny: grafika UKÁZKY
12. února 2016 (10:24) #26553Tak, částečně vyřešeno. Zřejmě to nebude až tak složité, dopátral jsem se kódu, který dělá v podstatě to samé, co původní WOOCOMMERCE widget:
<?php $terms = get_terms( 'product_cat', 'parent=0' ); // ID číslo kategorie, 'vylistovat z product_cat', 'pouze rodičovské kategorie' foreach( $terms as $term ) { echo 'Kategorie ' // uvádějící text . $term->name // název kategorie . ' (' // levá závorka . $term->count // počet produktů . 'ks) ' // pravá závorka . "<br />"; // nový řádek } ?>
Teď přichází ale nový problém a to ten, že když cyklus proběhne, vrátí hodnotu KATEGORIE A (5ks), KATEGORIE B (2ks). Když odstraním parent=0, vypíše všechny kategorie, včetně subkategorií se součtem produktů v každé kategorii. ALE pokud dám vypsat jen konkrétní ID kategorie, v mém případě ID 6 (KATEGORIE A), tak mi vrátí hodnotu KATEGORIE A (0ks). Je to správně, kategorie skutečně žádný produkt sama o sobě neobsahuje, na druhou stranu obsahuje dvě subkategorie, které mají dohromady produktů 5. Nedokázal by mi někdo poradit s tímto zádrhelem? Jinak je to v podstatě vyřešené.
Děkuji,
Provox12. února 2016 (11:01) #26554Vyřešeno!
je potřeba přidat
$child_term = get_term( ID-ČÍSLO, 'product_cat');
a
$child_term
nahradit'parent=0'
V každém případě děkuji, za snahu a přemýšlení i těm, co nereagovali.
Provox
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.