0

当每天完成 100 /50 个订单(这将是一个参数)时,我想在 prestashop 1.6.3 的订单页面中禁用 cod 交付功能。

如何通过确定 100 cod 是否已完成以编程方式禁用此功能。

在此处输入图像描述

4

1 回答 1

1

我将修改 cashondelivery 模块中的 hookPayment() 来做到这一点:

 public function hookPayment($params)
{

    if (!$this->active)
        return ;

    global $smarty;

    // Check if cart has product download
    if ($this->hasProductDownload($params['cart']))
        return false;
    //Check whether the cod done exceeds the daily limit if yes dont display the cod option
    $cod_limit  = Configuration::get('PS_KITS_COD_DAILY_LIMIT');//  number of cod
    $sql        = "select count(*) AS cod_count from ps_orders where module='cashondelivery' and date(date_add) = CURDATE() and ( current_state= 3 or current_state=4)";    
    if ($row = Db::getInstance()->getRow($sql)){
    $cod_count        = $row['cod_count']; 
    }
    if ($cod_count  >= $cod_limit){
    return ;
    }
    $smarty->assign(array(
        'this_path' => $this->_path, //keep for retro compat
        'this_path_cod' => $this->_path,
        'this_path_ssl' => Tools::getShopDomainSsl(true, true).__PS_BASE_URI__.'modules/'.$this->name.'/'
    ));
    return $this->display(__FILE__, 'payment.tpl');
}
于 2016-08-03T08:32:53.153 回答