Pokaż wszystkie produkty, gdy wyszukiwanie jest puste (OpenCart 2.3.x)

Cele bloga

Po przeczytaniu tego bloga będzie można wyświetlić wszystkie produkty, gdy wyszukiwanie jest puste.

Problem Statement

Obecnie w OpenCart, gdy użytkownik szuka dowolnego ciągu znaków przy użyciu funkcji wyszukiwania, żadne produkty nie są zwracane, jeśli w bazie danych nie znaleziono żadnego produktu wyszukiwania. Chcemy, aby zwracane były wszystkie produkty, gdy wyszukiwanie jest puste.

Implementacja kodu

Aby to osiągnąć, będziemy musieli wprowadzić pewne zmiany w funkcji modelu, której używamy do pobierania produktów z bazy danych na podstawie wprowadzonego słowa kluczowego wyszukiwania. Tutaj dokonujemy zmian w getProducts () ?function of model katalog / model / katalog / product.php ponieważ używamy tej funkcji do wyświetlania wyników na podstawie słowa kluczowego wyszukiwania.

Uwaga: możesz wprowadzić te same zmiany w funkcji modelu, której używasz do pobierania produktów. Oto kod, który dodaliśmy w modelu:

/ * Sprawdzono, czy wynik jest pusty (dotyczy wierszy 0) zapytania, które jest uruchamiane w celu pobrania danych na podstawie słowa kluczowego wyszukiwania. * Jeśli tak, to dodano nowe zapytanie, aby pobrać nowe produkty i wykonać je. * W ten sposób wyświetlimy nasze nowe produkty na stronie wyszukiwania zamiast wyświetlać pustą stronę. * / if ($ query-> num_rows == 0) {$ sql = "SELECT DISTINCT p.product_id FROM". DB_PREFIX. "product p LEFT JOIN". DB_PREFIX. "product_description pd ON (p.product_id = pd.product_id) LEFT JOIN". DB_PREFIX. "product_to_store p2s ON (p.product_id = p2s.product_id) WHERE p.status = '1' I p.date_available <= NOW () AND p2s.store_id = '". (int) $ this-> config-> get ('config_store_id'). "'GROUP BY p.product_id ORDER BY p.product_id DESC LIMIT 20"; $ query = $ this-> db-> query ($ sql); }

Dodaj ten kod zaraz po wykonaniu głównego zapytania lub tuż po linii ($ query = $ this-> db-> query ($ sql)). W tym kodzie najpierw sprawdziliśmy liczbę dotkniętych wierszy według głównej zapytania (używanego do pobierania danych na podstawie słowa kluczowego wyszukiwania). Jeśli dotknięty wiersz to 0 ($ zapytanie-> num_rows == 0) następnie dodaliśmy nasze zapytanie, aby pobrać nowe produkty. W ten sposób wyświetlimy nasze nowe produkty na stronie wyszukiwania zamiast wyświetlać pustą stronę.

Uwaga: tutaj napisaliśmy zapytanie o pobranie nowych produktów z bazy danych, jeśli wyszukiwanie jest puste. Możesz również dodać zapytanie, aby pobrać produkty specjalne lub najlepiej sprzedające się zgodnie z wymaganiami.

Podsumowanie

Po wprowadzeniu następujących zmian w pliku modelu, nowe dodane produkty będą wyświetlane, gdy wyszukiwanie będzie puste.


Shivika Tomar

Shivika Tomar

Shivika Tomar is a passionate PHP developer. Her area of interest is website development. She loves to bring healing to stressful and sad peoples.

Leave a Reply

Your email address will not be published. Required fields are marked *