Woocommerce Product Filter插件——为不同类别设置不同filter
来源:互联网 发布:重庆时时彩 遗漏数据 编辑:程序博客网 时间:2024/06/08 13:19
问题描述
WOOF插件用来对Woocommerce商品进行筛选。现在商品总共有三种类别,我们假设分别为裙子、手机和杯子。注:这种分类只是为了说明遇到的问题,没有什么实际意义。
现在为裙子添加三种属性:大小(S, M, L),长短(长, 中, 短),有无袖(有, 无)。为手机添加两种属性:品牌(华为, 苹果),尺寸(4寸,5寸)。为杯子添加两种属性:带柄(带, 不带),颜色(透明, 红色, 黄色)。
下面对各个页面做个说明:
- shop页面:列出所有商品的页面,也就是在Woocommerce->Setting->Product->Display为Shop Page设置的页面,假设URL为http:\//mysite.com/shop;
- 裙子类别页面:显示所有裙子的页面,假设URL为http:\//mysite.com/product-category/dress
- 手机类别页面:显示所有手机的页面,假设URL为http:\//mysite.com/product-category/phone
- 杯子类别页面:显示所有杯子的页面,假设URL为http:\//mysite.com/product-category/cup
现在希望在shop页面添加筛选框F1,其中只有类别分类系统,即筛选裙子/手机/杯子:
在裙子页面添加筛选框F2,包含裙子的三个属性分类系统:
在手机页面添加筛选框F3,包含手机的两个属性分类系统:
在杯子页面添加筛选框F4,包含杯子的两个属性分类系统:
解决方案
我是采用修改plugins/woocommerce-product-filter/index.php文件的方法来添加不同的filter。
找到函数,将
echo do_shortcode('[woof sid="auto_shortcode" autohide=' . $shortcode_hide . ' price_filter=' . $price_filter . ']');
替换为
if(is_product_category('dress')){ echo "dress"; echo do_shortcode('[woof sid="auto_Myshortcode" autohide=' . $shortcode_hide . ' price_filter=' . $price_filter . ' tax_only="pa_dress_size,pa_dress_longth,pa_dress_sleeve"]'); }elseif(is_product_category('phone')){ echo "phone"; echo do_shortcode('[woof sid="auto_Myshortcode" autohide=' . $shortcode_hide . ' price_filter=' . $price_filter . ' tax_only="pa_phone_brand,pa_phone_size"]');}elseif(is_product_category('cup')){ echo "cup"; echo do_shortcode('[woof sid="auto_Myshortcode" autohide=' . $shortcode_hide . ' price_filter=' . $price_filter . ' tax_only="pa_cpu_handle,pa_cup_color"]');}elseif(is_shop()){ echo "shop"; echo do_shortcode('[woof sid="auto_Myshortcode" autohide=' . $shortcode_hide . ' price_filter=' . $price_filter . ' tax_only="product_cat"]');}
这样修改之后确实四个页面都是预期想要的样子。但是问题总是来得太突然。假设我们现在在裙子类别页面筛选S号的裙子,你会惊奇地发现返回的商品结果虽然是正确的,但是页面缺跳到shop页面了,因为echo "shop";
被执行了,而且筛选框现在显示也不正常。
为什么呢??
这是因为WOOF就是这样设计的。唉!他把类别页面的筛选结果返回给shop页面进行显示,而由于shop页面的筛选框中只有类别分类系统,现在由于裙子类别没有子类别,所以没东西显示。不明白插件的作者为什么要多此一举,直接老老实实地在类别页面显示结果不好吗??
2017.8.11更新..
这个问题还是需要解决,给插件作者发送了一封邮件,简单的设置一下就可以实现产品类别页面的筛选结果仍然显示在类别页面。设置->Advanced->Option:
回复原话:This can cause the filter to work incorrectly。
- Woocommerce Product Filter插件——为不同类别设置不同filter
- WooCommerce——产品过滤器WooCommerce Products Filter
- websphere tomcat下,filter的不同表现
- TextView设置不同的字体大小,颜色,类别
- Maven打包时自动选择不同的配置(利用profile和filter插件)
- sql统计查询——求不同类别的平均值
- ListView展示不同类别
- 获取不同类别apk
- 使用maven的profile和filter插件管理配置项--不同环境(dev,beta,production)轻松切换
- 使用maven的profile和filter插件管理配置项--不同环境(dev,beta,production)轻松切换
- 使用maven的profile和filter插件管理配置项--不同环境(dev,beta,production)轻松切换
- Struts2.x不同版本的filter-class配置有区别
- 用maven filter 管理不同环境的配置文件
- 用 maven filter 管理不同环境的配置文件
- maven项目用filter管理不同环境的配置文件
- [Django]Django的orm中get和filter的不同
- Elasticsearch DSL中Query与Filter的不同
- Elasticsearch DSL中Query与Filter的不同
- c#微信服务器配置
- Codeforces Round #286 (Div. 2) A. Mr. Kitayuta's Gift
- 可变参数与自动拆箱和自动装箱
- 计算几何小结:叉积
- 实验:minikuber上运行简单程序
- Woocommerce Product Filter插件——为不同类别设置不同filter
- 生活中的单例——只爱一个人
- Tomcat单机多实例部署实战
- spring JdbcTemplate经典案例
- rom eeprom ram flash 的区别
- 设计模式3——抽象工厂模式
- 粗见之正则表达式
- 求{1,2,3}序列的全排列
- Hike on a Graph--HDU1252