2017-03-03 25 views
0

在Prestashop中添加新产品时,如果信息未完成,则必须小心禁用它。如何在Prestashop中默认禁用产品?

我试图在ps_configuration表中找到一个关键字,但没有任何关系,或者至少我找不到它。

现在的问题是如何在Prestashop中默认禁用产品?

回答

2

如果您使用的是v1.7,则在Shop Parameters - > Product Settings中有“Default activation status”选项。

如果您使用的是旧版本(1.6.x版),试试这个覆盖:

public function __construct($id_product = null, $full = false, $id_lang = null, $id_shop = null, Context $context = null) 
{ 
    parent::__construct($id_product, $full, $id_lang, $id_shop, $context); 
    if($id_product == null) 
     $this->active = false; 
} 

当您添加一个新的产品保存时的id_product只设置。

编辑:上面的重写并不总是工作,因为在tpl中,它检查它是否与当前的商店上下文相关联,并且它将始终返回false,因为产品尚未保存。

相反,你可以改变/覆盖管理模板文件/管理/主题/默认/模板/控制器/其中有源开关设置(约行196)的产品更改为:

<span class="switch prestashop-switch fixed-width-lg"> 
    <input onclick="toggleDraftWarning(false);showOptions(true);showRedirectProductOptions(false);" type="radio" name="active" id="active_on" value="1" {if $product->id != null && ($product->active || !$product->isAssociatedToShop())}checked="checked" {/if} /> 
    <label for="active_on" class="radioCheck"> 
     {l s='Yes'} 
    </label> 
    <input onclick="toggleDraftWarning(true);showOptions(false);showRedirectProductOptions(true);" type="radio" name="active" id="active_off" value="0" {if $product->id == null || (!$product->active && $product->isAssociatedToShop())}checked="checked"{/if} /> 
    <label for="active_off" class="radioCheck"> 
     {l s='No'} 
    </label> 
    <a class="slide-button btn"></a> 
</span> 

添加检查$ product-> id。