Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Jak wyłączyć zapamiętywanie w koszyku?
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy portalowe i CMS'y
blusss1
Witam,
mam zainstalowany wordpress w wersji 3.7.1 + wtyczka sleekstore
Obecnie gdy dodam produkty do koszyka jest ok, mogę je usuwać w koszyku, dodawać nowe jest ok. Koszyk pamięta sesję po wyjściu ze strony i po ponownym wejściu na nią widzę to co kliknąłem wcześniej (oczywista sprawa).
Jednak chciałbym aby po dodaniu produktu do koszyka i powrocie na stronę główną koszyk wyświetlał informacje ,ze jest pusty. Gdy dodam produkt ponownie i pokaże się koszyk chciałbym aby został on zaktualizowany o dodany produkt, jednak gdy przejdę z powrotem na stronę główna produkty znikał z koszyka...
znalazłem rozwiązanie ale nie wiem czy dobre:
if( is_home() || is_front_page() ) unset( $_SESSION["w9ss.cart.items"] );
w jakim pliku zamieścić powyższy kod aby system działał tak jak chcę?
czy może mi ktoś pomóc?
sowiq
Cytat(blusss1 @ 26.11.2013, 11:52:00 ) *
if( is_home() || is_front_page() ) unset( $_SESSION["w9ss.cart.items"] );
w jakim pliku zamieścić powyższy kod aby system działał tak jak chcę?


Wrzuć do functions.php w katalogu ze swoją templatką (jeśli taki plik nie istnieje, to go stwórz). Ten plik jest załączany za każdym requestem, więc powinien obsłużyć Twoją akcję.
blusss1
Dziękuję za pomoc,
plik functions.php był w mojej templatce, dodałem poniższy skrypt:
if( is_home() || is_front_page() ) unset( $_SESSION["w9ss.cart.items"] );

ale nic się nie wydarzyło, tzn nadal po wejściu w koszyk system pamięta to co było wcześniej.
vermis
Cytat(blusss1 @ 26.11.2013, 11:52:00 ) *
Jednak chciałbym aby po dodaniu produktu do koszyka i powrocie na stronę główną koszyk wyświetlał informacje ,ze jest pusty.


A jaki jest sens ukrywania przed użytkownikiem faktu, że dodał produkt do koszyka?
Skoro dodał to ma go tam widzieć do usunięcia, złożenia zamówienie lub ewentualnie do wygaśniecia sesji.
blusss1
Wiedziałem, że prędzej czy później pojawi się takie pytanie, myślę że nie ma co pisać po co? na co? w jakim celu, tylko po prostu - mam taką potrzebę i szukam rozwiązania,
nie chodzi o fakt dodania do koszyka, tylko o fakt wyjścia z koszyka żeby system nie pamiętał tego co w nim aktualnie się znajduje.
z góry dziękuję za pomoc
sowiq
Kolego, sleekstore wymaga rejestracji przed pobraniem. Może m.in. z tego powodu nie jest to najpopularniejsza wtyczka do obsługi sklepu. Stąd nieduża ilość odpowiedzi.

Początek już masz. Musisz tylko znaleźć sposób na czyszczenie zawartości koszyka. Być może znajdziesz to na jakimś forum, a być może będziesz musiał zagłębić się samodzielnie w kod.

Tak czy siak, możesz skorzystać z kodu, który podałeś:
  1. if( is_home() || is_front_page() ){
  2. // tutaj opróżniasz koszyk
  3. }


Sprawdź co zawiera tablica $_SESSION, bo być może tam jest trzymana jakaś informacja. Daj na początku pliku functions.php:
  1. var_dump($_SESSION)

i zobacz jaka jest różnica w wyniku przed i po dodaniu czegoś do koszyka.
blusss1
<?php
if( is_home() ){
session_destroy(); // tutaj opróżniasz koszyk
}
?>
sowiq
Z tym, że jak użytkownik był zalogowany, to po Twoim opróżnianiu koszyka już nie będzie wink.gif Nawet jeśli nie miał nic w tym koszyku to i tak na stronie głównej zostanie wylogowany.

Ale jeśli Ci to nie przeszkadza, to chyba OK.
blusss1
Dobrze to wiedzieć na przyszłość. Aktualnie strona działa jak sklep ale nie jest nim do końca bo nie ma logowania, więc mi to nie przeszkadza zupełnie. Ale lepszym rozwiązaniem chyba będzie:
w9ss('Koszyk')->removeAll();


dzięki za pomoc
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.