2017-12-31 12 views
2

ich bin mit einem Problem zu tun, muss ich den Träger ändern, wenn der Wagen Betrag, den sie> 500, so, ich bin Einhaken actionCartSave und die Menge überprüft, aber, wenn ichPrestashop Wagen nicht retten Arbeits

$cart->id_carrier=(int)$carrier_id; 
$cart->update(); 

Der Ajax reagiert nicht mehr, muss die Seite neu laden, um zu sehen, ob ein Produkt in den Warenkorb hinzugefügt wurde, aber wenn ich die $cart->update() entferne, wird der Träger nicht aktualisiert. Wie kann ich das lösen?

Antwort

1

Vielleicht laufen Sie in eine Schleife. Wenn Sie update aufrufen, wird der Haken actionCartSave erneut aufgerufen.
Was Sie tun müssen, ist zu vermeiden um den Warenkorb zu aktualisieren, wenn der Wagen Träger die gleiche wie in Ihrem Ergebnis

if ((int)$cart->id_carrier !== (int)$carrier_id) { 
    $cart->id_carrier = (int)$carrier_id; 
    $cart->update(); 
} 

Auf diese Weise ist, werden Sie die Endlosschleife
Weitere (besser) zu vermeiden Lösung wäre, Verwenden Sie $cart->save();, weil es actionCartSave

nicht aufruft