web-dev-qa-db-ja.com

在庫のない商品は掲載しないでください

フロントページにvirtuemart製品のカテゴリを表示するモジュールがあります。在庫がない商品は表示したくありません。

モジュールコードには、製品を選択するための関数があります。

public static function _CountProduct($catids, $params)
{
    if ($catids == '*') {
        $_catids = $params->get('catid');
        $catids = self::_getChildCategories($_catids, $params);
        $catids = self::_getPublishCategories($catids);
    }
    if (empty($catids)) return;

    $limitation = 999;
    $source_group = null;
    $ordering_direction = $params->get('product_ordering_direction');
    $source_order = $params->get('source_order', 'group.featured');
    $p_special = $params->get('show_front');
    $categoryModel = VmModel::getModel('Category');
    $categoryModel->_noLimit = true;

    $list = array();
    if (!empty($catids)) {
        $productModel = VmModel::getModel('Product');
        $productModel = new VirtuemartModelProductExtend();
        $productModel->filter_order = $source_order;
        $productModel->specail_product = $p_special;
        $productModel->ordering_direction = $ordering_direction;
        $desc_maxlength = $params->get('item_des_maxlength');
        $items = $productModel->getProductListing($source_group, $limitation, true, true, false, true, $catids);
        $productModel->addImages($items);
        $ratingModel = VmModel::getModel('ratings');
        foreach ($items as $item) {
            $item->title = $item->product_name;
            $item->id = $item->virtuemart_product_id;
            $item->description = $item->product_desc;
            self::getVmImages($item, $params);
            $item->short_desc = self::_cleanText($item->product_s_desc);
            $item->_description = self::_cleanText($item->description);
            $item->_description = ($item->_description != '') ? self::truncate($item->_description, $desc_maxlength) : self::truncate($item->short_desc, $desc_maxlength);
            $item->vote = $ratingModel->getVoteByProduct($item->virtuemart_product_id);
            $item->rating = $ratingModel->getRatingByProduct($item->virtuemart_product_id);
            $list[] = $item;
        }
    }


    return count($list);
}

この機能を変更するにはどうすればよいですか?私は最後のバージョンのjoomlaとvirtuemartを使用しています。

任意の助けいただければ幸いです。ありがとう

2
kiasaty

これは標準のVm関数です。右側でConfiguration> Shopfrontを選択すると、製品が在庫切れの場合に使用できるオプションがあります...これを「Do not display product」に変更します。

Hide products when out of stock

応答が遅れたことをお詫び申し上げます。

ドナよろしく

1
Dtorr1981

モジュールでは、$ productModelがあるので、$ productModel-> orderableを確認できます。モジュール内の製品がレンダリングされる場所で、次のようなチェックを行います-

if ($productModel->orderable == false) {
    //Do not render product
} else {
    //Render product
}
1
Anant