Přihlásit se

Košík - motivator k nákupu

13. lis 2018 12:28 #137639
Košík - motivator k nákupu vytvořeno marvays
Ahoj.
Loni jsem řešil kus kodu, díky kterému by se mi měl na stránce detailu produktu zobrazovat text, který se mění v závislosti na tom, jakou hodnotu má zboží vložené do košíku. Díky některým z vás jsem to dal do kupy:
Code:
<div class="motivator" style="padding: 10px;position: absolute;width: 350px;right: 150px;bottom: -3px;padding: 10px;color: #e8102c;text-align: right;text-transform: none;"> <?php if ($data->billTotal == 0) { ?> <span style="animation: blinker 2s linear infinite;">Při objednávce nad 5000,- je doprava zdarma!</span> <?php } elseif ($data->billTotal < 5000) { ?> <span style="animation: blinker 2s linear infinite;">Chcete dopravu zdarma? Přidejte ještě zboží za: <?php echo (5000 - ($data->billTotal)) ?>,-</span> <?php } else { ?> <span style="font-weight: 700; color: #109d16;">Vaše objednávka bude dopravena zdarma!</span> <?php } ?> </div>

Tohle je kod pvo VM2 a umístěný je v modulu košíku.

Nyní řeším, že potřebuji tento kod zobrazovat v detailu produktu a ve VM3.
Kod jsem tedy vložil, ale nepřepočítává to . . . . jen zobrazí první volbu. Jelikož php je moje "jediná a nejslabší :)" stránka, tak nějak netuším, jestli je to tím, že je to umístěno mimo modul košíku, nebo tím, že je to v novější verzi VMka.

Mám takové tušení, že je to ta druhá možnost. A odhaduju že problém bude konkrétně v "$data->billTotal" . . . . poučíte mě prosím?

13. lis 2018 12:39 - 13. lis 2018 12:40 #137640
Odpověď od marvays
Tak potvrzeno, i Vmdebug si to myslí:
Code:
Notice: Undefined variable: data in /www/templates/astroid_template_zero/html/com_virtuemart/productdetails/default.php on line 257
Code:
<?php if ($data->billTotal == 0) { ?>

13. lis 2018 12:42 - 13. lis 2018 12:44 #137641
Odpověď od Ernst
mrknu na to, ale v jakém php souboru jsi ten kód měl?

neviděl jsem druhou zprávu, už chápu

13. lis 2018 14:09 - 13. lis 2018 14:22 #137643
Odpověď od Ernst
tak je to následně:

V novější verzi VM už není objekt $data, proto je třeba nahradit $data->billTotal proměnnou $this->cart->cartPrices[billTotal]

kód tedy bude:
Code:
<div class="motivator" style="padding: 10px;position: absolute;width: 350px;right: 150px;bottom: -3px;padding: 10px;color: #e8102c;text-align: right;text-transform: none;"> <?php if ($this->cart->cartPrices[billTotal] = 0) { ?> <span style="animation: blinker 2s linear infinite;">Při objednávce nad 5000,- je doprava zdarma!</span> <?php } elseif ($this->cart->cartPrices[billTotal] < 5000) { ?> <span style="animation: blinker 2s linear infinite;">Chcete dopravu zdarma? Přidejte ještě zboží za: <?php echo (5000 - ($this->cart->cartPrices[billTotal])) ?>,-</span> <?php } else { ?> <span style="font-weight: 700; color: #109d16;">Vaše objednávka bude dopravena zdarma!</span> <?php } ?> </div>

Tento kód je ale možné vložit to košíku, ne k detailu produktu.
Tuto možnost jsem nikde nenašel, opravdu jste tento kód měl v detailu produktu?

13. lis 2018 14:22 #137644
Odpověď od Rudolf
Na detailu produktu si určitě nevoláte model order, který voláte v košíku :)))))
Takže bych tipnul, že se tam musí vložit něco trochu jiného.

Můžete tedy hackovat nebo použít modul Free Shipping Info, který tohle kompletně řeší.

MiniJoomla! - www.minijoomla.org - 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
Přílohy:

13. lis 2018 14:53 #137647
Odpověď od Ernst
ještě jsem se na to díval a ten kód:
Code:
<div class="motivator" style="padding: 10px;position: absolute;width: 350px;right: 150px;bottom: -3px;padding: 10px;color: #e8102c;text-align: right;text-transform: none;"> <?php if ($data->billTotal == 0) { ?> <span style="animation: blinker 2s linear infinite;">Při objednávce nad 5000,- je doprava zdarma!</span> <?php } elseif ($data->billTotal < 5000) { ?> <span style="animation: blinker 2s linear infinite;">Chcete dopravu zdarma? Přidejte ještě zboží za: <?php echo (5000 - ($data->billTotal)) ?>,-</span> <?php } else { ?> <span style="font-weight: 700; color: #109d16;">Vaše objednávka bude dopravena zdarma!</span> <?php } ?> </div>

můžete použít v modulu košíku (v přepsání modulu)

to o čem píšu já výše, je košík v komponentě

Powered by Fórum