Prestashop:如何检查产品是否在愿望清单上

时间:2018-07-12 18:16:13

标签: prestashop

有人知道如何利用心愿单模块的任何功能在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

谢谢

1 个答案:

答案 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}变量。