有人知道如何利用心愿单模块的任何功能在tpl中使用变量来了解产品是否已经添加到心愿单吗?
如果我不存在,我可以想象可以使用某些功能,因为添加产品时,如果默认列表中已有产品,它将添加nity而不是将其添加为新产品。
理想情况下,对于您需要的功能,它不仅是默认情况下在列表中进行浏览,而且总而言之,有必要知道它是否已添加到列表中。
该功能将根据商品是否已经在列表中显示图标或其他图标。
有人开发了它,还是可以帮我?
谢谢!
Prestashop 1.6.1.16
非常感谢您的贡献。 我给了我下面的代码,它总是给我一个“ 1”(并且,如果您注意到,我发明了产品编号(该编号不存在,因为目前我只有8个产品))。 我重写了模块的php:
class BlockWishListOverride extends BlockWishList
{
function checkProductIsInWishlist()
{
$customer_wishlists = getByIdCustomer($this->context->customer->id);
$id_product_to_check = 424554224; // Replace by the current product id
foreach ($customer_wishlists as $cw) {
$check_product_wl = WishList::getProductByIdCustomer((int)$cw['id_wishlist'], (int)$this->context->customer->id,
(int)$this->context->language->id, (int)$id_product_to_check);
if (count($check_product_wl)) {
$this->smarty->assign('is_in_wishlist', true);
}
}
}
}
在我的product.tpl中:
<p>Is in whislist: {$is_in_wishlist|print_r}</p>
正面结果:
Result $is_in_wishlist on front
谢谢
答案 0 :(得分:0)
您可以使用以下方法:
public static function getByIdCustomer($id_customer)
public static function getProductByIdCustomer($id_wishlist, $id_customer, $id_lang, $id_product = null, $quantity = false)
可在/modules/blockwishlist/WishList.php
中找到在您的控制器文件中(在前端),您可以执行以下操作:
$customer_wishlists = WishList::getByIdCustomer($this->context->customer->id);
$id_product_to_check = 42; // Replace by the current product id
foreach ($customer_wishlists as $cw) {
$check_product_wl = WishList::getProductByIdCustomer((int)$cw['id_wishlist'], (int)$this->context->customer->id,
(int)$this->context->language->id, (int)$id_product_to_check);
if (count($check_product_wl)) {
$this->smarty->assign('is_in_wishlist', true);
}
}
然后检查Smarty product.tpl模板中的{$is_in_wishlist}
变量。