Magento 获取购物车产品数量和价格程序代码

 更新时间:2016年11月25日 17:28  点击:1943
本文章来给各位使用Magento的朋友介绍怎么来获取购物车产品数量和价格并显示出来,下面我来给各位同学详细介绍。

得到购物车所有的产品信息

 代码如下 复制代码

// $items = Mage::getModel('checkout/cart')->getQuote()->getAllItems();
$items = Mage::getSingleton('checkout/session')->getQuote()->getAllItems();foreach($items as $item) {
    echo 'ID: '.$item->getProductId().'<br>';
    echo 'Name: '.$item->getName().'<br>';
    echo 'Sku: '.$item->getSku().'<br>';
    echo 'Quantity: '.$item->getQty().'<br>';
    echo 'Price: '.$item->getPrice().'<br>';
    echo "<br>";
}

当然,也可以快速得到当前用户的所有的item的个数和产品的所有个数!下面是magento的一个快速函数!

 代码如下 复制代码

$totalItems = Mage::getModel('checkout/cart')->getQuote()->getItemsCount();
$totalQuantity = Mage::getModel('checkout/cart')->getQuote()->getItemsQty();

下面是得到subtotal price 和grand price的方法

 代码如下 复制代码

$subTotal = Mage::getModel('checkout/cart')->getQuote()->getSubtotal();
$grandTotal = Mage::getModel('checkout/cart')->getQuote()->getGrandTotal()

这样就可以快速的得到当前购物车的详细信息,方便操作数据,显示购物车的信息!!

一般用于右上角的购物车信息居多,或者ajax购物车!

Bootstrap中包含了丰富的Web组件,根据这些组件,可以快速的搭建一个漂亮、功能完备的网站。 但是有时候我们网站前台并不需要Bootstrap,只要管理后台使用Bootstrap,那么该如何单独为一个module加载Bootstrap呢

这里有4中方法来实现这个:
1.在应用的配置文件中添加如下内容 (protected/config/main.php):

PHP

 代码如下 复制代码
    'modules'=>array(
        'admin'=>array(
            'preload'=>array('<span class='wp_keywordlink_affiliate'><a href="http://lxy.me/tag/bootstrap" title="查看 bootstrap 中的全部文章" target="_blank">bootstrap</a></span>'),
            'components'=>array(
                '<span class='wp_keywordlink_affiliate'><a href="http://lxy.me/tag/bootstrap" title="查看 bootstrap 中的全部文章" target="_blank">bootstrap</a></span>'=>array(
                    'class'=>'ext.bootstrap.components.Bootstrap'
            )
        ),
    // ...其他模块...
    )   

   

2.在模块初始化时加载:

 代码如下 复制代码
    public function init()
    {
        // import the module-level models and components
        $this->setImport(array(
            'admin.models.*',
            'admin.components.*',
            // 'ext.bootstrap.components.Bootstrap', // this will go to app config for components
        ));
        Yii::app()->getComponent('bootstrap');// this does the loading
    }


3.模块初始化加载的另一种方法:

 代码如下 复制代码

PHP
    public function init()
    {
        // import the module-level models and components
        $this->setImport(array(
            'admin.models.*',
            'admin.components.*',
        ));

        $this->configure(array(
                'components'=>array(
                    'bootstrap'=>array(
                        'class'=>'ext.bootstrap.components.Bootstrap'
                    )
                )
        ));
        $this->getComponent('bootstrap');
    }


4.模块加载时的另一种方法:

 代码如下 复制代码

PHP
    public function init()
    {
        // import the module-level models and components
        $this->setImport(array(
            'admin.models.*',
            'admin.components.*',
        ));

        $this->configure(array(
                'preload'=>array('bootstrap'),
                'components'=>array(
                    'bootstrap'=>array(
                        'class'=>'ext.bootstrap.components.Bootstrap'
                    )
                )
        ));
        $this->preloadComponents();
    }

本文章来给各位朋友介绍Magento 修正来自首页的产品页面包屑导航实现方法,如果产品是从Category产品列表中进入Product详细页面,则面包屑导航中含有Category Path; 否则,当从首页,或搜索结果中,或者其他什么地方进入,则缺少之。我想,可能是Magento支持一个产品放入多个Category的缘故吧。不管怎么样,产品页中缺少了Category Path,用户体验不大好。

修正的方法,找到文件app/code/core/Mage/Catalog/Helper/Data.php

复制一份到local代码池

app/code/local/Mage/Catalog/Helper/Data.php
在函数getBreadcrumbPath的开始部分,加上如下的代码逻辑:

 

 代码如下 复制代码
getBreadcrumbPath()
    {
        if (!$this->_categoryPath) {
            $path = array();
            //add by date 2013-04-07 产品页面包屑导航修正
            if ($this->getProduct() && !$this->getCategory()) {
                $_categoryIds = $this->getProduct()->getCategoryIds();
                rsort($_categoryIds);
                if ($_categoryId = $_categoryIds[0]) {
                    $_category = Mage::getModel('catalog/category')->load($_categoryId);
                    Mage::register('current_category', $_category);
                }
            }
            //end date 2013-04-07
           
            if ($category = $this->getCategory()) {
                $pathInStore = $category->getPathInStore();
                $pathIds = array_reverse(explode(',', $pathInStore));
                $categories = $category->getParentCategories();
                // add category path breadcrumb
                foreach ($pathIds as $categoryId) {
                    if (isset($categories[$categoryId]) && $categories[$categoryId]->getName()) {
                        $path['category'.$categoryId] = array(
                            'label' => $categories[$categoryId]->getName(),
                            'link' => $this->_isCategoryLink($categoryId) ? $categories[$categoryId]->getUrl() : ''
                        );
                    }
                }
            }
            if ($this->getProduct()) {
                $path['product'] = array('label'=>$this->getProduct()->getName());
            }
            $this->_categoryPath = $path;
        }
        return $this->_categoryPath;
    }

首先判断当前是否是产品页,如果是并且没有Category信息,就获取产品所属的Category IDs,Magento中一个产品可以加入多个Category中,现在也不管那么多了,只挑出其中一个幸运的Category作为current_category

php默认时区是欧美国家的所以与我们中国时区相差了整整8小时哦,下面我来给各位介绍php设置时区方法,有需要了解的朋友可进入参考。

在 php.ini 中,默认是 date.timezone = UTC。修改为中国时区,修改为 date.timezone = PRC。如果直接写 GMT 格式的,是 date.timezone = Etc/GMT+8。

另外,也可以在 PHP 页面头中设置。

 代码如下 复制代码

date_default_timezone_set('PRC');


在PHP5中, 有很多方法可以设置或者获取默认的时区设置,例如,使用date_default_timezone_setl函数来设置时区

 代码如下 复制代码

<?php
    date_default_timezone_set("Asia/Shanghain"); //设置时区为上海
?>

或者 设置东京的时区代码为:

<?php
    date_default_timezone_set("Asia/Tokyo");
?>

系统初始化时,加上

ini_set('date.timezone','Asia/Shanghai'); 

date_default_timezone_set("PRC"); 

就将解决时区相差8


还有如果你有php.ini管理权限可直接在php.ini中修改哦


手动修改php.ini设置

打开php找到date.timezone = "PRC" 如有去掉前面的分号,没有的话手动添加!

 

装上PHP5后你会发现这样的问题:

 

 代码如下 复制代码
<?php  
$atime=date("Y-m-d H:i:s");  
echo $atime;  
?> 
<?php
$atime=date("Y-m-d H:i:s");
echo $atime;
?>

你也许会发现,输出的时间和你现在的时间是不相同的。

原因是假如你不在程序或配置文件中设置你的服务器当地时区的话,PHP所取的时间是格林威治标准时间,所以和你当地的时间会有出入。

格林威治标准时间和北京时间大概差8个小时左右 那么我们如何避免时间误差呢?

我们一起来看看解决方法:

在页头使用date_default_timezone_set()设置我的默认时区为北京时间。

 代码如下 复制代码


<?  
date_default_timezone_set('PRC');  
echo date('Y-m-d H:i:s');  
?> 


时间和服务器当前时间一样了。

如果发生插入数据库错误的话,请确保 date('Y-m-d H:i:s') 中的 H 为大写。

在php中我们最常用的指定HTML标签可以直接使用strip_tags函数来替换了,利用它可以过滤所有的html标签哦,下面我来给大家介绍除了此函数之外的其它办法。

有时候我们需要把html标签页存到数据库里,但是有些场合却需要拿无html标签的纯数据,这个时候就要对带html标签的数据进行处理,把html标签都去掉。平时用 htmlspecialchars() 来过滤html,但是把html的字符转义了,最后显示出来的就是html源代码,利用strip_tags()就可以把html标签去除掉。


PHP默认的函数有移除指定html标签,名称为strip_tags,在某些场合非常有用。

strip_tags


strip_tags — Strip HTML and PHP tags from a string


string strip_tags ( string str [, string allowable_tags] )

弊端 :


这个函数只能保留想要的html标签,就是参数string allowable_tags。

这个函数的参数allowable_tags的其他的用法。

 代码如下 复制代码


strip_tags($source, ”); 去掉所以的html标签。
strip_tags($source, ‘<div><img><em>’); 保留字符串中的div、img、em标签。

如果想去掉的html的指定标签。那么这个函数就不能满足需求了。


于是乎我用到了这个函数。

 代码如下 复制代码

function strip_only_tags($str, $tags, $stripContent = FALSE) {
  $content = '';
 
  if (!is_array($tags)) {
    $tags = (strpos($str, '>') !== false ? explode('>', str_replace('<', '', $tags)) : array($tags));
    if (end($tags) == '') {
      array_pop($tags);
    }
  }
 
  foreach($tags as $tag) {
    if ($stripContent) {
      $content = '(.+<!--'.$tag.'(-->|s[^>]*>)|)';
    }
 
    $str = preg_replace('#<!--?'.$tag.'(-->|s[^>]*>)'.$content.'#is', '', $str);
  }
 
  return $str;
}


参数说明


$str  — 是指需要过滤的一段字符串,比如div、p、em、img等html标签。
$tags — 是指想要移除指定的html标签,比如a、img、p等。
$stripContent = FALSE  — 移除标签内的内容,比如将整个链接删除等,默认为False,即不删除标签内的内容。

使用说明

 代码如下 复制代码


$target = strip_only_tags($source, array(‘a’,'em’,'b’));移除$source字符串内的a、em、b标签。

$source='<div><a href="" target="_blank"><img src="logo.png" border="0" alt="Welcome to linzl." />This a example from<em>lixiphp</em></a><strong>!</strong></div>
 ';
 
$target = strip_only_tags($source, array('a','em'));
 
//target results
//<div><img src="/logo.png" border="0" alt="Welcome to lixiphp." />This a example from<strong>!</strong></div>

其它办法

 代码如下 复制代码


<?php
//取出br标记
function strip($str)
{
$str=str_replace("<br>","",$str);
//$str=htmlspecialchars($str);
return strip_tags($str);
}
?>


一个自定义的函数

/

 代码如下 复制代码
**
 * 取出html标签
 *
 * @access public
 * @param string str
 * @return string
 *
 */
function deletehtml($str) {
    $str = trim($str); //清除字符串两边的空格
    $str = strip_tags($str,"<p>"); //利用php自带的函数清除html格式。保留P标签
    $str = preg_replace("/t/","",$str); //使用正则表达式匹配需要替换的内容,如:空格,换行,并将替换为空。
    $str = preg_replace("/rn/","",$str);
    $str = preg_replace("/r/","",$str);
    $str = preg_replace("/n/","",$str);
    $str = preg_replace("/ /","",$str);
    $str = preg_replace("/  /","",$str);  //匹配html中的空格
    return trim($str); //返回字符串
}
 
[!--infotagslink--]

相关文章

  • ASP.NET购物车实现过程详解

    这篇文章主要为大家详细介绍了ASP.NET购物车的实现过程,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-09-22
  • JS实现购物车中商品总价计算

    这篇文章主要为大家详细介绍了JS实现购物车中商品总价的计算 ,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-03-07
  • React列表栏及购物车组件使用详解

    这篇文章主要为大家详细介绍了React列表栏及购物车组件使用,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-28
  • vue实现简单购物车案例

    这篇文章主要为大家详细介绍了vue实现简单购物车案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-06-01
  • 基于jquery fly插件实现加入购物车抛物线动画效果

    在购物网站中,加入购物车的功能是必须的功能,有的网站在用户点击加入购物车按钮时,就会出现该商品从点击出以抛物线的动画相似加入购物车,这个功能看起来非常炫,对用户体验也有一定的提高。下面介绍基于jquery fly插件实现加入购物车抛物线动画效果...2016-04-06
  • jQuery实现加入购物车飞入动画效果

    HTML 首先载入jQuery库文件和jquery.fly.min.js插件。复制代码 代码如下: <script src="jquery.js"></script> <script src="jquery.fly.min.js"></script> 接着,将商品信息html结构布置好,本例中,我们用四个商品并排...2015-03-15
  • b2c网站购物车的设计思路

    对于大部分B2C网站来说,购物车是网站的咽喉之地,订单是白花花的银子,所有银子都必然流经购物车,购物车不能有失。优秀的购物车设计至少需要完成两项使命:一是方便用户多买...2016-09-20
  • 帝国CMS商品加入购物车链接代码

    商品加入购物车链接地址为:[!--news.url--]e/ShopSys/doaction.php?enews=AddBuycar&classid=[!--classid--]&id=[!--id--]...2015-12-30
  • jQuery实现的购物车物品数量加减功能代码

    这篇文章主要介绍了jQuery实现的购物车物品数量加减功能,涉及jQuery针对鼠标事件的响应及页面元素动态操作相关技巧,需要的朋友可以参考下...2016-11-22
  • jQuery使用cookie与json简单实现购物车功能

    这篇文章主要介绍了jQuery使用cookie与json简单实现购物车功能的方法,介绍了jQuery实现购物车的步骤与关键代码,需要的朋友可以参考下...2016-04-18
  • js实现简易购物车功能

    这篇文章主要为大家详细介绍了js实现简易购物车功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-10
  • jQuery基于json与cookie实现购物车的方法

    这篇文章主要介绍了jQuery基于json与cookie实现购物车的方法,涉及jQuery操作json格式数据与cookie存储购物车信息的相关技巧,需要的朋友可以参考下...2016-04-18
  • 原生js实现购物车

    这篇文章主要为大家详细介绍了原生js实现购物车,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-09-24
  • 使用jQuery实现购物车

    这篇文章主要为大家详细介绍了使用jQuery实现购物车,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-10-29
  • Magento 修正来自首页的产品页面包屑导航

    本文章来给各位朋友介绍Magento 修正来自首页的产品页面包屑导航实现方法,如果产品是从Category产品列表中进入Product详细页面,则面包屑导航中含有Category Path; 否则...2016-11-25
  • PHP实现购物车代码[可重复使用]

    php购物车的代码 发布者:[longlong16] 时间:[2006-11-1] <? if(!$session && !$scid) { $session = md5(uniqid(rand())); SetCookie(scid, $sess...2016-11-25
  • 微信小程序 购物车简单实例

    这篇文章主要介绍了微信小程序 购物车简单实例的相关资料,需要的朋友可以参考下...2016-10-25
  • Magento新建组件控制器不生效或 404

    今天我们一起来看一篇关于Magento新建组件控制器不生效或 404问题的解决办法,希望碰到此类问题的同学可以和小编一起来看看吧,具体的操作细节如下所示。 检查链接是...2016-11-25
  • html5小程序飞入购物车(抛物线绘制运动轨迹点)

    这篇文章主要介绍了html5小程序飞入购物车(抛物线绘制运动轨迹点),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-12-08
  • 帝国CMS无刷新加入购物车

    如淘宝一般,点击加入购物车直接提示加入购物车成功,而不刷新商品页面更不会打开新窗口。 使用方法: 1.修改商城内容模板或列表模板 加入代码如下代码: <script src="<?=$pu...2015-12-30