Php 禁用Opencart中销售产品的优惠券

Php 禁用Opencart中销售产品的优惠券,php,opencart,conditional-statements,product,price,Php,Opencart,Conditional Statements,Product,Price,嘿,我想禁用Opencart中销售产品的优惠券 我找到了优惠券代码,这里是优惠券不起作用时的“if-s”列表。。。我必须在这里添加一个条件,即当产品打折时$status=false 但是我不知道如何检查产品是否有特价 if ($coupon_query->row['total'] > $this->cart->getSubTotal()) { $status = false; } $coupon_history_query = $this->db->q

嘿,我想禁用Opencart中销售产品的优惠券

我找到了优惠券代码,这里是优惠券不起作用时的“if-s”列表。。。我必须在这里添加一个条件,即当产品打折时
$status=false

但是我不知道如何检查产品是否有特价

if ($coupon_query->row['total'] > $this->cart->getSubTotal()) {
    $status = false;
}
$coupon_history_query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "coupon_history` ch WHERE ch.coupon_id = '" . (int)$coupon_query->row['coupon_id'] . "'");

if ($coupon_query->row['uses_total'] > 0 && ($coupon_history_query->row['total'] >= $coupon_query->row['uses_total'])) {
    $status = false;
}

if ($coupon_query->row['logged'] && !$this->customer->getId()) {
    $status = false;
}

这适用于版本2.3.0.2

在您的文件
catalog/model/extension/total/coupon.php
中查找函数
公共函数getTotal($total)

在队伍旁边

$this->load->language('extension/total/coupon');

下一次搜索<代码>$折扣=0在同一函数中。
之前$折扣=0添加

$product_details = $this->model_catalog_product->getProduct($product['product_id']);
if($product_details['special']) {
    continue;
}

这将跳过对具有特殊价格的产品应用折扣,并将应用于购物车中的其他产品。

这适用于2.3.0.2版

在您的文件
catalog/model/extension/total/coupon.php
中查找函数
公共函数getTotal($total)

在队伍旁边

$this->load->language('extension/total/coupon');

下一次搜索<代码>$折扣=0在同一函数中。
之前$折扣=0添加

$product_details = $this->model_catalog_product->getProduct($product['product_id']);
if($product_details['special']) {
    continue;
}

这将跳过对具有特殊价格的产品应用折扣,并将应用于购物车中的其他产品。

感谢您提供的代码,它工作得非常好,但当我添加此代码时,我注意到出现了另一个错误。当我添加未销售的产品和正在销售的产品时,折扣值不正确。息票价值的类型设置为固定价格。 例子: 折扣券-20美元 产品1-10美元-待售 产品2-20美元-出售 产品3-100美元-不出售

折扣优惠券价值出现在结帐中,如:-17,65或其他。 这是我在优惠券.php中做的支票

if ($status) {
  if ($coupon_info['type'] == 'F') {
    $discount = $coupon_info['discount'] * ($product['total'] / $sub_total);
  } elseif ($coupon_info['type'] == 'P') {
    $discount = $product['total'] / 100 * $coupon_info['discount'];
}

谢谢你的代码,它工作得很好,但是当我添加这个时,我注意到出现了另一个bug。当我添加未销售的产品和正在销售的产品时,折扣值不正确。息票价值的类型设置为固定价格。 例子: 折扣券-20美元 产品1-10美元-待售 产品2-20美元-出售 产品3-100美元-不出售

折扣优惠券价值出现在结帐中,如:-17,65或其他。 这是我在优惠券.php中做的支票

if ($status) {
  if ($coupon_info['type'] == 'F') {
    $discount = $coupon_info['discount'] * ($product['total'] / $sub_total);
  } elseif ($coupon_info['type'] == 'P') {
    $discount = $product['total'] / 100 * $coupon_info['discount'];
}

如果您查找
foreach($this->cart->getProducts()作为$product){
,您需要在
if(在数组($product['product\u id',$coupon\u info['product']){
之后再次添加上面相同的代码。

如果您查找
foreach($this->cart->getProducts()作为$product){
,您需要在
if(在数组($product['product\u id'],$COLUP\u info['product'])中)之后添加上面相同的代码{
再次。

您在哪个文件中找到代码,使用哪个版本的opencart?您在哪个文件中找到代码,使用哪个版本的opencart?这为我节省了很多时间,谢谢!不过最好在vqmod/ocmod修改中这样做,以确保将来的更新不会带来痛苦。或者说,不会太痛苦!这为我节省了很多时间,谢谢!不过最好在vqmod/ocmod修改中这样做,以确保将来的更新不会带来痛苦。或者无论如何都不会那么痛苦!