jOp*_*cic 2 wordpress woocommerce
我正在开发使用WooCommerce的项目,并且需要添加一个自定义链接,这会导致商店页面出现一定的价格限制 - 我不会使用内置的WooCommerce价格过滤器小部件,但添加了一个带有以下URL的静态链接:
http://my.domain.com/shop?min_price=0&max_price=2000
Run Code Online (Sandbox Code Playgroud)
shop
WooCommerce Shop页面的页面在哪里,我刚刚在URL中添加了其余参数.
当Shop页面打开时,产品仍在那里,但没有任何过滤 - 我做错了什么?这与Price Filter Widget使用的原理相同吗?
小智 6
您的网址参数没有做任何事情的原因是,如果价格过滤器窗口小部件处于活动状态,WooCommerce仅运行价格过滤器.
要解决这个问题,请使用初始化价格过滤器的woocommerce函数,更改名称,并修改它以运行过滤器,即使窗口小部件未处于活动状态.然后解开woocommerce价格过滤器初始化功能并挂钩你的.
也就是说,把它放到你的functions.php文件中:
function my_price_filter_init() {
global $woocommerce;
if ( ! is_admin() ) {
unset( $_SESSION['min_price'] );
unset( $_SESSION['max_price'] );
if ( isset( $_GET['min_price'] ) )
$_SESSION['min_price'] = $_GET['min_price'];
if ( isset( $_GET['max_price'] ) )
$_SESSION['max_price'] = $_GET['max_price'];
add_filter( 'loop_shop_post_in', 'woocommerce_price_filter' );
}
}
remove_action('init', 'woocommerce_price_filter_init');
add_action( 'init', 'my_price_filter_init' );
Run Code Online (Sandbox Code Playgroud)
这是对widget-price_filter.php中woocommerce_price_filter_init的修改.上面的函数没有加载运行价格过滤器小部件的javascript,所以如果你需要小部件也可以工作,你必须把它放回去(或者只是让我知道,我会重新编辑它).
归档时间: |
|
查看次数: |
6521 次 |
最近记录: |