如何限制特定类别的 COD

How to restrict COD for certain category

抱歉,如果之前有人问过这个话题。我是 opencart 的新手。如何配置不同类别的付款方式,例如货到付款。 假设有 2 个类别,A 和 B。当客户想要结账时,只有 A 类货到付款可用。

cod.php 中需要更改什么?我正在使用 Opencart 版本 3.0.3.1。

谢谢。

找到此代码之前,当产品重量超过 1 时禁用 cod。

输入: /catalog/model/payment/cod.php

之后: public 函数 getMethod($address, $total) {

添加: 如果 ($this->cart->getWeight() > 1) return;

你可以使用这个模块:https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=27392

如果硬编码没问题,那么您可以将此代码添加到 :

IN: /catalog/model/payment/cod.php

//category cod validation

        $VALIDATE=[1,123,12,112,346]; // add your category id here
        $products = $this->cart->getProducts();
        foreach ($products as $cart) {
            $query = $this->db->query("SELECT category_id FROM " . DB_PREFIX . "product_to_category WHERE product_id = '" . (int)$cart['product_id'] . "'");
            foreach($query->rows as $cart_data){
                //array_push($check,$cart_data['category_id']);
                if( in_array($cart_data['category_id'] , $VALIDATE) )
                {
                $status=false;
                }
            }
        }