Php 正在尝试为opencart中的特殊价格添加jquery倒计时
我正试图在opencart中为特殊价格设置jquery倒计时 由于我们在OpenCart管理面板中有特殊价格的开始日期和结束日期 我想让jquery计数计时器显示剩余的Php 正在尝试为opencart中的特殊价格添加jquery倒计时,php,jquery,opencart,Php,Jquery,Opencart,我正试图在opencart中为特殊价格设置jquery倒计时 由于我们在OpenCart管理面板中有特殊价格的开始日期和结束日期 我想让jquery计数计时器显示剩余的 (天:小时:分钟:秒) 特价 我得到了jquery倒计时的代码,并将其放入产品的模板文件中,但它不起作用,在internet上也没有帮助或代码 谢谢我给你的礼物 也检查 在极好的问题上有更多选择。正如您所指出的,您希望显示的数据已经是OpenCart的管理/后端的一部分,但它在前端不可用。我将演示如何添加它 由于OpenCart
(天:小时:分钟:秒)
特价
我得到了jquery倒计时的代码,并将其放入产品的模板文件中,但它不起作用,在internet上也没有帮助或代码
谢谢我给你的礼物
也检查
在极好的问题上有更多选择。正如您所指出的,您希望显示的数据已经是OpenCart的管理/后端的一部分,但它在前端不可用。我将演示如何添加它 由于OpenCart的体系结构,您必须在3个地方进行更改。模型、视图和控制器。首先,您必须从数据库中获取数据。因为我们希望对前端进行更改,所以所有内容都将包含在目录中。如果查看代码,您会发现catalog/model/catalog/product.php。这是我们第一次改变的地方。ModelCatalogProduct中提供特殊价格,但不提供特殊价格结束日期。您可以修改现有的getProduct()方法,也可以创建自己的方法。我将向您展示后者,而前者留给用户作为练习 catalog/model/catalog/product.php
class ModelCatalogProduct extends Model {
...
// Return an array containing special (price, date_start, date_end).
// or false if no special price exists.
public function getSpecialPriceDates($product_id) {
if ($this->customer->isLogged()) {
$customer_group_id = $this->customer->getCustomerGroupId();
} else {
$customer_group_id = $this->config->get('config_customer_group_id');
}
$query = $this->db->query("SELECT price, date_start, date_end FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$product_id . "' AND customer_group_id = '" . (int)$customer_group_id . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY priority ASC, price ASC LIMIT 1");
if ($query->num_rows) {
return array(
'special' => $query->row['price'],
'date_start' => $query->row['date_start'],
'date_end' => $query->row['date_end'],
);
} else {
return false;
}
}
...
}
...
if ((float)$product_info['special']) {
$this->data['special'] = $this->currency->format($this->tax->calculate($product_info['special'], $product_info['tax_class_id'], $this->config->get('config_tax')));
// +++ NEW CODE
$special_info = $this->model_catalog_product->getSpecialPriceDates($product_id);
if ($special_info) {
$this->data['special_date_end'] = $special_info['date_end'];
} else {
$this->date['special_date_end'] = false;
}
// +++ END NEW CODE
} else {
$this->data['special'] = false;
}
...
最后一项任务是在产品视图中实现计时器。这将位于类似catalog/view/theme/default/template/product/product.tpl的位置(如果您有自己的主题,请将default替换为{your theme})。jQuery有很多不同的倒计时解决方案,请选择您的解决方案
catalog/view/theme/default/template/product/product.tpl
<?php if (!$special) { ?>
<?php echo $price; ?>
<?php } else { ?>
<span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>
<?php if ($special_date_end): ?>
<!-- TIMER CODE HERE -->
<div class="timer"></div>
<?php endif; ?>
<?php } ?>
亲爱的先生,我也收到了所有这些脚本,但我不确定在OPENCART中添加到哪里以及它们的值是什么。这是我的问题,无论如何谢谢你的回复。有一件小事,mysql不支持ORDER_BY,所以我使用ORDER BY。再次感谢