分类归档

网站开发

FWQ
网站开发
从实现购物车快捷支付来探讨zen cart的ONS设计模式
一切源于开源,最终服务于开源的,欢迎探讨,敬请尊重原创。 虽说zen cart更新慢,而且最新版中大量的代码还是面向过程的写法,只要少部分是采用OOP设计,然而其中至少也有引入一些OOP开发中常用的设计模式,比如我们今天要谈的obserer/notifier system(ONS),我不太确定该什么翻译了,暂且称它为侦听者(也有人翻作侦听器,侦听事件,事件)设计模式。不要纠结这个了,我通常不翻,直接用英文说法,不然和别人沟通时会有问题。想要深入了解这个设计模式的可以去看一些关于设计模式的书。这个设计模式的应用很广泛了,在开源的PHP电商平台如WooCommerce里的HOOK,Magento里的observer/Event, opencart里的Front … 做了这么多年电商,发现一直在原地踏步。很多人总在想为什么转化率很低,也想了很多办法来提高转化率,换了一套又一套的模板,改了又改的下单流程,一个又一个的促销活动 … 如果说我们觉得自己的站的体验真的很差,那还是让用户早做决定,迅速购买,快速支付,我所指的快速支付是指在购物车页面保存一直快照,然后直接将用户带到第三方支付页面,舍弃掉zen cart站内的下单流程,只传递订单号,金额,货币,购物内容这几个参数给第三方支付网关,由支付网关负责收集用户的地址信息。这就是我这边要举的例子。以zen cart为实验平台,在产品展示页面或购物车页面显示快速支付按钮或链接,其实这方面paypal很早就做了,我这边只不过是举个例子来说明。 从zen cart 1.3以后的版本中,所有类都是继承base这个类,所以,首先,所有的zen cart核心类都具有侦听事件并在事件发生时做出相应动作的能力。由于zen cart目前仍然有大部分的代码是面向过程而非OOP的,所以,要在某个页面侦听事件并响应,就要借助zen cart的$zco_notifier全局变量。 首先我们来定义一个observer类,因为是要在购物车页面的checkout按钮前增加一个快捷支付的按钮,所以我把类名定为 express_checkout,继承base类,代码如下 includes/classes/observers/class.express.checkout.php class express_checkout extends base { function __construct() {…
2025-04-26 阅读全文 →
FWQ
网站开发
将ZenCart所有商品改成免运费
所有ZenCart商品改成免运费,后台的 工具-安装SQL脚本 下执行:UPDATE products SET product_is_always_free_shipping = ‘1’; 把所有商品改成免运费,后台的 工具-安装SQL脚本 下执行:UPDATE products SET product_is_always_free_shipping = ‘1’; 把所有商品改成付运费,后台的 工具-安装SQL脚本 下执行:UPDATE products SET product_is_always_free_shipping = ‘0’;
2025-04-26 阅读全文 →
FWQ
网站开发
Zen Cart v1.39 admin后台不能登录的解决办法
 Zen Cart v1.39加强了安全性措施,如果不重命名admin文件夹,就不能登录网站管理员后台。仅仅重命名admin文件夹,也是不能登录的,还要在配置文件中做相应的改动。 假设要把”admin”改为”master”,下面是整个重命名步骤: 1. 先把zen cart根目录下的admin重命名为master。Linux下的命令为: 1 mv admin master 2. 编辑zen cart/master/includes/configure.php配置文件,把”/admin/”全部替换为”/master/”,一共有三处替换。默认configure.php是只读文件,Linux下可以通过下面命令修改文件属性: 1 chmod u+w configure.php #使文件可写 2 chmod u-w configure.php #使文件只读 3. 通过http://www.***/master/登录管理员后台。 最后,如果觉得这样太麻烦,或者是对admin有着特殊的感情,则可以编辑文件: 1…
2025-04-26 阅读全文 →
FWQ
网站开发
验证ZenCart货币类型是否存在函数zen_currency_exist
ZenCart 的 zen_currency_exists 函数是检验指定的货币代码的货币是否存在,如果存在返回该货币的货币代码,如果不存在,返回false 第一个参数就是指定货币的货币代码,比如美元就是usd 第二个参数是指是否返回默认货币,就是网站指定的默认货币,汇率为1的 函数原型代码 function zen_currency_exists($code, $getFirstDefault = false) { global $db; $code = zen_db_prepare_input($code); $currency_code = “select code from ” . TABLE_CURRENCIES . ” where code =…
2025-04-26 阅读全文 →
FWQ
网站开发
zencart后台CKeditor编辑器增加图片上传功能
1.修改网站根目录文件夹editors\ckeditor\config.js 文件,在CKEDITOR.editorConfig = function( config )   {   }; 中添加如下代码: config.filebrowserImageUploadUrl = ‘./upload.php?type=img’; config.filebrowserFlashUploadUrl = ‘./upload.php?type=flash’; 2.在admin文件夹中新建upload.php文件,在其中添加如下代码: <?php /* CKEditor_upload.php monkee 2009-11-15 16:47 */ $config=array(); $config[‘type’]=array(“flash”,”img”); //上传允许type值 $config[‘img’]=array(“jpg”,”bmp”,”gif”); //img允许后缀 $config[‘flash’]=array(“flv”,”swf”); //flash允许后缀 $config[‘flash_size’]=200; //上传flash大小上限 单位:KB $config[‘img_size’]=500; //上传img大小上限 单位:KB…
2025-04-26 阅读全文 →
FWQ
网站开发
seo zencart优化宝典
众所周知,Zencart是最好的网店程序之一,但与生俱来的一些程序问题干扰了站内搜索引擎优化。所以需要通过插件的应用及2次开发来达到我们更好的通过搜索引擎销售产品的目的。 1>测试首页、频道页、内页的meta属性(主要包括标题、描述与关键词以及版权等信息),根据页面匹配性,将关键词有效的布局在每个页面内,最好可以达到自由编写的水平。 2>正确书写robots.txt和站内nofollow属性,屏蔽部分与页面优化冲突或者不应被搜索引擎抓捕的目录和页面。 3>保证多种语言版本网站内容的收录和有效索引: Google网站管理员指南明确指出:“允许搜索蜘蛛机器人在不采用会跟踪其在网站上浏览路径的会话 ID 或参数的情况下抓取您的网站。这些技术对跟踪单个用户的行为非常有用,但蜘蛛机器人的访问模式却完全不同。”比如zencart程序产生的 index.php?main_page=site_map与index.php?main_page=site_map& language=gb内容完全一致,导致重复页面的产生,显然会降低整个网站在搜索引擎算法评估中得出的质量。解决方法可以参考本文2>提到的方式。 4>针对性强的页面静态化并使其具有良好的结构(注意控制路径长度,例如由Ethan开发的 SEO3.0模块提供了简单模式和Diy模式两种url模式):以产品和产品目录页面为核心,构建核心明确、相关度高的站内结构;产业页面内容唯一、不与其他页面重复;站内导入链接无误,由于更新等原因失效的错误页面使用404.htm;重要的产品及目录页面在网站大型调整后要保证url不变,已做变化的需要将原路径301永久重定向到新页面;首页确定主域名后,其他域名301定向到主域名。 5>适合中英文等不同语言包的优化插件。 6>生成sitemap或rss feed并提交。 相关问题的解决方法:安装优化插件 Yahoo! Product Submit Feeder 下载:http://www.zen-cart.com/index.php?main_page=product_contrib_info&products_id=841 用于提交网站产品到雅虎搜索引擎在线营销商务数据库(具体介绍见 http://searchmarketing.yahoo.com/shopsb/shpsb_specs.php) Ultimate SEO URLs 下载:http://www.zen-cart.com/index.php?main_page=product_contrib_info&products_id=231 用于站内相关页面地址静态化 Tabbed…
2025-04-26 阅读全文 →
FWQ
网站开发
zencart后台订单管理列表显示图片和产品链接
zencart后台订单默认是没有图片显示的,发货的时候每次都要去前台搜索产品名或model,这样很不方便。 那么就做一些修改吧 1,找到文件admin/orders.php ,大约在542行,搜索: <td class=”dataTableHeadingContent” colspan=”2″><?php echo TABLE_HEADING_PRODUCTS; ?></td>   在后面加上一行 <td class=”dataTableHeadingContent”>Products Images</td>       然后大约在562行搜索: <td class=”dataTableContent” valign=”top”>’ . $order->products[$i][‘name’];   将其替换为 <td class=”dataTableContent” valign=”top”><a href=”‘ .zen_catalog_href_link(FILENAME_PRODUCT_INFO, ‘products_id=’ . $order->products[$i][‘id’]) . ‘ “target=”_blank”>’ . $order->products[$i][‘name’] . “</a>”. “\n” .               ‘            <td class=”dataTableContent” valign=”top” width=”90″>’.zen_image(DIR_WS_CATALOG.DIR_WS_IMAGES . zen_get_products_image($order->products[$i][‘id’]),”,’60’,’60’) .'</td>’;       最后,大约在597行,搜索: <td align=”right” colspan=”8″><table border=”0″ cellspacing=”0″ cellpadding=”2″>   将其中的数字8改为9.大功告成!
2025-04-26 阅读全文 →
FWQ
网站开发
zencart通过产品id 批量添加推荐产品
1.修改 admin/featured.php 查找 pre_add_confirmation 将 pre_add_confirmation 与  break; 之间的代码,用下面的代码替换即可   <?php case 'pre_add_confirmation': // check for blank or existing featured $pre_add_products_id=$_POST['pre_add_products_id']; $pre_add_products_id2=explode(',',$pre_add_products_id); foreach($pre_add_products_id2 as $key=>$val) { $sql =…
2025-04-26 阅读全文 →
FWQ
网站开发
如何修改zencart让商品页多图效果
  zencart商品页默认的商品多图展示 是细节图与商品主图分开的,并且不会随鼠标事件进行主图与细节图进行切换 从访客浏览友好体验这方面来说, 好像不太妥当, 这里我们自己动手, 作点小小的修改,让商品细节图 放在商品在图下面 并且能对鼠标事件有个基本的响应切换动作,修改前 先来看张效果图 (点击图片查看大图)   上图 中 商品细节图 位于商品主图下, 当鼠标点击小图片时, 主图变成被点击的小图. 注: 本修改只实现这一功能和基本展示, 最终的样式还得根距当前模板的实际样式自己调整修改. 另: 本修改适合当前模板引入 JQuery 库的环境, 不然单纯为这一个小功能的需要 单独引入 JQuery…
2025-04-26 阅读全文 →