2016-07-05 13 views
1

Ich benutze jquery cookie, um einen Cookie zu löschen, wenn der Benutzer eine Schaltfläche in meinem Magierladen drückt, um die Mehrwertsteuerpreise anzuzeigen und zu verbergen.Toggle cookie true false magento

Mein aktueller js sieht so aus:

$j('.nav-customer-vat a').click(function(){ 

    $j(this).text($j(this).text() == 'Show VAT' ? 'Hide VAT' : 'Show VAT'); 
    $j(this).toggleClass('active'); 

    if($j(this).text() == 'Show VAT'){ 
     console.log('show'); 
     $j.cookie("showVat", false, { path: '/' });  
    } else if($j(this).text() == 'Hide VAT'){ 
     $j.cookie('showVat', true) 
     console.log('hide'); 
    } 
} 

Im dann auf dem Frontend zu testen, die folgende magento Cookie getModel verwenden, wenn das Cookie wahr oder falsch ist:

<?php $cookie = Mage::getModel('core/cookie')->get('showVat'); ?> 
     <?php if($cookie){ ?> 
     <a href="#" class="display-vat"><?php echo $this->__('Hide VAT'); ?></a> 
     <?php } else { ?> 
     <a href="#" class="display-vat"><?php echo $this->__('Show VAT'); ?></a> 
    <?php } ?> 

dies jedoch nur scheint um einmal zu arbeiten, wird es bei jedem Klick immer falsch zurückkommen, ich kann mir nicht vorstellen, warum das so ist. Jede Hilfe wäre großartig.

Antwort

1

Dies liegt daran, dass Cookies als Zeichenfolge gespeichert werden. Und die Zeichenfolge "false" wertet als True. Sie müssen also die tatsächlichen Zeichenfolgenwerte festlegen und diese vergleichen.

Weitere Informationen in diesem Beitrag: jquery cookie set value to boolean true

+1

Also nur Aximus zu klären, rechts oben ist, was ich das ändern tat, ist die folgende: Altered das Cookie: $ j.cookie (‚showVat‘, ‚aktiviert‘ , {Pfad: '/'}); if ($ j (this) .text() == 'Mehrwertsteuer anzeigen') {$ j.cookie ("showVat", 'disable', {path: '/'}); \t} 'Dann in PHP Danke. –