Košík - motivator k nákupu
kód je správně až na jedno ale:
$data->billTotal vrátí řetězec “Celkem 373,00 Kč”
To jistě chápeš, že nemůžeš porovnávat s numerickou hodnotou.
Takže pravdivě ti to vyhodnotí jen první podmínku, pokud je košík prázdný a řetězec je tudíž "" (prázdný)
Je tedy nutné ten řetězec převést na číslo, aby se to dalo porovnat. Je více možností jak to převést na číslo, ale problém by byl, pokud by tam byly oddělovače tisíců, to by se to dle formátu muselo ještě upravit. Jestli je oddělovač desetinných míst tečka nebo čárka je jedno.
Vidím dvě možnosti. Pokud chci opravdu vycházet z proměnné $data->billTotal:
takže celý kód bude vypadat například:


ale zapomněli jste na to že změna ceny musí běžet ajaxem, jinak si to programujete jen pro programování a je to v reálném eshopu nepoužitelné.
Jak jsem psal, podíval bych se po modulu a komponentě Free Shipping info, která to má již vyřešené.
MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
My přeci cenu neměníme, jen k ní zobrazujeme info :ohmy:

Aha, tak pokud máte tuto verzi chování eshopu.
MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla

- od té doby co je pro VM k dispozici ajaxový košík a ajaxová komponenta Free shipping info
- od té doby co to má alza a zákazníci to chtějí taky
Jinak mi vyhrožují jinými systémy

MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla

Rudolf Baláš napsal: - od té doby co to má alza a zákazníci to chtějí taky
Jinak mi vyhrožují jinými systémy



Ale nebuďte smutný, až rozjedeme portal minijoomla.org tak tam najdete všechny doplňky z portalu EasyJoomla.org v nové verzi a plus nové verze od nás včetně toho Free Shipping info.
Pak si to můžete koupit za mrzký peníz pokud to budete chtít

MiniJoomla! - www.minijoomla.cz - eshop s rozšířením Joomla/VM
Email Manager - aplikace na správu šablon emailů pro VirtueMart
Easy Feeder - aplikace na generování XML/CSV feedů a napojení na ERP pro VM
PragueClassicconcert - portál pro prodej vstupenek na systému Joomla
Ernst napsal: tak jsem se na vyžádání ještě podíval na ten kód do modulu košík:
takže celý kód bude vypadat například:
Code:<div class="motivator"> <?php $celkem = floatval(preg_replace(array("/[^0-9,.]/","/[.,]/"), array("","."), $data->billTotal)) ?> <?php if ($celkem = 0) { ?> <span style="animation: blinker 2s linear infinite;">Při objednávce nad 5000,- je doprava zdarma!</span> <?php } elseif ($celkem < 5000) { ?> <span style="animation: blinker 2s linear infinite;">Chcete dopravu zdarma? Přidejte ještě zboží za: <?php echo (5000 - ($celkem)) ?>,-</span> <?php } else { ?> <span style="font-weight: 700; color: #109d16;">Vaše objednávka bude dopravena zdarma!</span> <?php } ?> </div>
Vyzkoušeno. posunuli jsme se hodně dopředu. Ale . . .
hned na startu to přeskočí první podmínku. i když jsem změnil podmínku na ==0 tak ji přeskočí a zobrazí podmínku druhou. Tuhle dopdmínku to ale počítá zvláštně. Pokud mám prázdný košík, tak bych měl mít výzvu na přidání do košíku za 5000,-. Místo toho mi to počítá na 4905 a někde se nám zatoulalo 95 kaček. Možná by pomohlo změnit druhou podmínku na větší než 0 a menší než 5000,-
třetí podmínka vypadá dobře.
ajax by byl luxus, takhle musím pořešit, aby se mi nenačítal košík do cache.
Třetí podmínka funguje správně.
Rudolf Baláš napsal: a ajaxová komponenta Free shipping info
Máte link na tu komponentu? Na forek VMnet mi toho vyskakuje mraky a vždy se to tváří jako balík něčeho. nepoznám, kterou máte na mysli.
Já si tu možnost ajaxu v košíku neuvědomil.
musí se do default.php v přepisu košíku v šablone doplnit js, který ten text taky aktualizuje.
sorry jako, ta podmínka musí být <?php if ($celkem <= 0) { ?> místo <?php if ($celkem = 0) { ?> , to jsem přehlédl. Musí to tak být, protože $celkem je typu float.hned na startu to přeskočí první podmínku. i když jsem změnil podmínku na ==0 tak ji přeskočí a zobrazí podmínku druhou. Tuhle dopdmínku to ale počítá zvláštně. Pokud mám prázdný košík, tak bych měl mít výzvu na přidání do košíku za 5000,-. Místo toho mi to počítá na 4905 a někde se nám zatoulalo 95 kaček. Možná by pomohlo změnit druhou podmínku na větší než 0 a menší než 5000,-
Ten ajax není zas tak složitý uvede variantu pro něj, která bude fungovat i při vypnutém ajax, takže pro obojí jedno řešení.
musí se změnit /modules/mod_virtuemart_cart/assets/js/update_cart.js.
ten ale není chráněn při upgrade VM, takže by jsi ho musel znovu měnit po každém upgrade.
Nejsem v JS tak zběhlý, abych věděl jak js umístit do souboru default.php v přepisu modulu košíku v šabloně.
Pokud mi zde někdo poradí, budu velmi rád.
Ještě to otestuji a pak zde uveřejním, asi večer
Ernst napsal: Já už to předělal i pro ten ajax a některé chyby jsem při testu opravil.
Ještě to otestuji a pak zde uveřejním, asi večer
To abych ti večer klepnul husu. Nebo raději králíka?
