我需要识别添加到购物车按钮并根据产品ID禁用它(js和php)(这不是问题的真正目的,粗体是真实的)
由于我没有找到任何解决方案,我想让管理员按下admin部分专用的tomy扩展按钮,用js捕获按钮信息,然后再保存。
为此,我想显示产品页面的主体和设计部分中每个主题的类别。
这是我检索主题和包的方式:
//Main package/theme
Mage::getStoreConfig('design/package/name')
//Reegex theme
$ob=unserialize(Mage::getStoreConfig('design/package/ua_regexp'));
foreach($ob as $key)
echo $key['value'];
我主要关注的是大胆的部分,如果有可能的话?我该怎么做?
需要明确的是:我只需要红色矩形:
在它上面有面包屑,右边是侧边栏
更详细信息
当管理员创建/编辑产品时,它可以选择是否可以选择项目的国家/地区
会发生什么:当页面加载系统时检查该项目是否可以在客户所在国家/地区销售,否则会删除该按钮。
现在这带来了一些问题:
在同一页面中可以存在可销售和不可销售的产品:识别类别页面中有多个正确项目的按钮,这样做我检查按钮行为:通常它包含: /checkout/cart/
加上product id
属性中的onlick
或按钮提交表单,我认为如果管理员“显示”我发生了什么,经过分析后,我将能够识别按钮并使用id
(安全)或class
(不太确定)替换它,因为并非所有商店都使用默认的btn-cart
类
获取页面的缓存/ FPC系统:我不知道他们是否会捕获禁用该按钮的js,或者如果客户已经废弃了任何脚本(可能它甚至无法使用该网站),但是通常情况下,这些程序不会缓存添加到购物车块(有时如果项目不可用,则隐藏按钮)
搜索引擎优化问题:访客不是被迫选择一个国家,但我尝试用一些外部服务使用ip来识别它,所以可能它也会检测机器人作为用户,我不知道是否这将是一个问题(我不这么认为),否则我必须使用JS进行AJAX调用然后隐藏按钮
我想避免对任何模板文件进行任何编辑,并为用户创建一个非常简单的方法来设置模块(单击一个按钮比创建属性的整个过程简单,亲戚选项并关联它到集)
基本上:如何在后端显示产品和类别页面?
答案 0 :(得分:2)
如何使用下一个逻辑从产品页面中删除按钮:
向Catalog>中的产品添加新属性(例如:hide_button,输入Yes / No)属性>管理属性。默认情况下它将为“no”,因此所有产品都有按钮。管理员可以将所需产品的属性设置为“是”。
创建将捕获catalog_product_load_after
事件的观察者:
public function checkProduct(Varien_Event_Observer $observer){
Mage::register('hide_button', $observer->getEvent()->getProduct()->getData('hide_button'));
return $this;
}
创建将捕获controller_action_layout_generate_blocks_after
事件并将js代码注入所有主题的观察者:
public function injectScript(Varien_Event_Observer $observer){
if (Mage::registry('hide_button' == 1) {
$head = $observer->getEvent()->getLayout()->getBlock('head');
$head->addItem('js', 'hide-button.js');
}
return $this;
}
创建文件js / hide-button.js,它将从页面中删除类“btn-cart”的按钮:
Event.observe(window, 'load', function() {
$$("button.btn-cart").remove();
});
我没有测试代码,这只是一个想法。