Wishlist и редирект

06.10.2023 17:39
#1
Alexk
Joomshopping forum user no avatar
Name: Alexk
08.02.2012
Posts: 2
Quote
Wishlist и редирект

Добрый день!
1. Подскажите, пожалуйста, как убрать редирект на страницу "Список пожеланий" при нажатии кнопки добавления в вишлист? Хотелось бы, чтобы клиент мог оставаться на странице товара или категории.
2. В самом Списке пожеланий при добавлении товара в корзину товар удаляется из этого списка с редиректом в корзину. Как сделать так, чтобы товар добавлялся в корзину без удаления из списка? В controllers/wishlist.php нашел такую строчку:
$cart = JSFactory::getModel('checkout', 'jshop')->removeWishlistItemToCart($number_id);

Что в ней заменить, чтобы товар просто добавился в корзину и остался в списке? Планирую приобрести Save Cart, чтобы была возможность хранить списки желаемого в профиле клиентов, но юзабилити вишлиста немного угнетает.
Заранее спасибо за ответ и огромная благодарность за ваш большой труд.


Joomla: 3.10
JoomShopping: 4.14.3
PHP: 7.2
 
06.10.2023 20:05
#2
admin
(Support Team)
User admin
Name: Admin
05.08.2010
Posts: 25941
Quote
Aw: Wishlist и редирект

1. configuration / Checkout
Not redirect in wishlist after buy

2. components\com_jshopping\Model\CheckoutModel.php

function removeWishlistItemToCart($number_id){
$dispatcher = \JFactory::getApplication();
$dispatcher->triggerEvent('onBeforeLoadWishlistRemoveToCart', array(&$number_id));

$wishlist = \JSFactory::getModel('cart', 'Site');
$wishlist->load("wishlist");
$prod = $wishlist->products[$number_id];
$attr = unserialize($prod['attributes']);
$freeattribut = unserialize($prod['freeattributes']);

$cart = \JSFactory::getModel('cart', 'Site');
$cart->load("cart");
if ($cart->add($prod['product_id'], $prod['quantity'], $attr, $freeattribut)) {
$wishlist->delete($number_id);
}
$dispatcher->triggerEvent('onAfterWishlistRemoveToCart', array(&$cart));
return $cart;
}

change to

function removeWishlistItemToCart($number_id){
$dispatcher = \JFactory::getApplication();
$dispatcher->triggerEvent('onBeforeLoadWishlistRemoveToCart', array(&$number_id));

$wishlist = \JSFactory::getModel('cart', 'Site');
$wishlist->load("wishlist");
$prod = $wishlist->products[$number_id];
$attr = unserialize($prod['attributes']);
$freeattribut = unserialize($prod['freeattributes']);

$cart = \JSFactory::getModel('cart', 'Site');
$cart->load("cart");
if ($cart->add($prod['product_id'], $prod['quantity'], $attr, $freeattribut)) {
//$wishlist->delete($number_id);
}
$dispatcher->triggerEvent('onAfterWishlistRemoveToCart', array(&$cart));
return $cart;
}


Letzte Änderung: 06.10.2023 20:07
 
06.10.2023 21:24
#3
Alexk
Joomshopping forum user no avatar
Name: Alexk
08.02.2012
Posts: 2
Quote
Aw: Wishlist и редирект

Огромнейшее спасибо!
Стыдно, что первый пункт столь позорно проглядел. По второму пункту: мой файл models/checkout.php имел такие строки
function removeWishlistItemToCart($number_id){
$dispatcher = JDispatcher::getInstance();
$dispatcher->trigger('onBeforeLoadWishlistRemoveToCart', array(&$number_id));

$cart = JSFactory::getModel('cart', 'jshop');
$cart->load("wishlist");
$prod = $cart->products[$number_id];
$attr = unserialize($prod['attributes']);
$freeattribut = unserialize($prod['freeattributes']);
$cart->delete($number_id);

$cart = JSFactory::getModel('cart', 'jshop');
$cart->load("cart");
$cart->add($prod['product_id'], $prod['quantity'], $attr, $freeattribut);
$dispatcher->trigger('onAfterWishlistRemoveToCart', array(&$cart));
return $cart;
}

Удалил строчку $cart->delete($number_id);, все заработало, как нужно. Еще раз большущая благодарность и всех благ!

 
07.10.2023 09:26
#4
admin
(Support Team)
User admin
Name: Admin
05.08.2010
Posts: 25941
Quote
Aw: Wishlist и редирект

2. Дал код для JoomShopping 5
а у Вас 4

 


Copyrights MAXXmarketing GmbH. Alle Rechte vorbehalten
Durch die Nutzung dieser Website stimme ich zu, dass Cookies zur optimalen Gestaltung der Website sowie zur Analyse der Nutzung der Website verwendet werden. Weiterführende Informationen finden Sie hier. OK, einverstanden.