我改變woocommerce核心查詢,並試圖基於自定義查詢字符串pro_type_sws展示產品= 32如何激活價格過濾woocommerce沒有通過MIN_PRICE和MAX_PRICE URL
現在,當我提供整個查詢字符串它的工作原理
WP /?MIN_PRICE = 35 & MAX_PRICE = 120 & post_type =產品& pro_type_sws = 32
但是當我只使用
localhost/wp /?post_type = product & pro_type_sws = 32
它不工作,我不知道如何激活價格過濾器代碼,而不使用小部件過濾器按鈕。
總之我想在產品頁面上應用過濾器,因此它只顯示那些與woocommerce的自定義產品數據類型相關的產品。
代碼中更改:類-WC-query.php
if ((isset($_GET['max_price']) && isset($_GET['min_price'])) or isset($_GET['pro_type_sws'])) {
$matched_products = array();
$min = floatval($_GET['min_price']);
$max = floatval($_GET['max_price']);
$pro_type = $_GET['pro_type_sws'];
/*
Applying Filter based on product type query string
* If Product type query string set then render only those products which are related to given product data type.
*/
if (isset($pro_type)){
// Query Update : Product type based filter applied through $pro_type query string
$matched_products_query = apply_filters('woocommerce_price_filter_results', $wpdb->get_results($wpdb->prepare("
SELECT DISTINCT ID, post_parent, post_type FROM $wpdb->posts
INNER JOIN $wpdb->postmeta ON ID = post_id
LEFT JOIN wp_term_relationships AS rel ON object_id = post_id
WHERE post_type IN ('product', 'product_variation') AND post_status = 'publish' AND meta_key = %s AND meta_value BETWEEN %d AND %d AND rel.term_taxonomy_id = %d
", '_price', $min, $max, $pro_type), OBJECT_K), $min, $max);
}
else{
$matched_products_query = apply_filters('woocommerce_price_filter_results', $wpdb->get_results($wpdb->prepare("
SELECT DISTINCT ID, post_parent, post_type FROM $wpdb->posts
INNER JOIN $wpdb->postmeta ON ID = post_id
WHERE post_type IN ('product', 'product_variation') AND post_status = 'publish' AND meta_key = %s AND meta_value BETWEEN %d AND %d
", '_price', $min, $max), OBJECT_K), $min, $max);
}
if ($matched_products_query) {
foreach ($matched_products_query as $product) {
if ($product->post_type == 'product')
$matched_products[] = $product->ID;
if ($product->post_parent > 0 && ! in_array($product->post_parent, $matched_products))
$matched_products[] = $product->post_parent;
}
}
我們可以看到您的自定義查詢代碼? – rnevius 2014-10-22 08:37:54
@rnevius請檢查現在,但只有當我通過完整的URL,但有其他任何合適的方式,所以我可以使用localhost/wp /?post_type = product&pro_type_sws = 32 SO,我只是通過pro_type_sws = 32 querystring和價格過濾器激活 – Bilal 2014-10-22 08:55:22