2017-04-06 18 views
1

価格ではなくカスタムの属性値をソートするための既存のWoocommerce価格スライダーを修正しようとしましたが、mod_sqlクエリではスタックしませんでした。ここで価格帯の値としてのWoocommerceカスタム属性

はSQL標準woocommerce価格クエリの一部ですが、1つのカスタム属性を取得するために変更範囲:

$sql = "SELECT min(FLOOR(post_meta.meta_value)) as min_maxcarry, max(CEILING(post_meta.meta_value)) as max_maxcarry FROM {$wpdb->posts} "; 
    $sql .= " LEFT JOIN {$wpdb->postmeta} as post_meta ON {$wpdb->posts}.ID = post_meta.post_id " . $meta_query_sql['join']; 
    $sql .= " WHERE {$wpdb->posts}.post_type IN ('" . implode("','", array_map('esc_sql', apply_filters('woocommerce_price_filter_post_type', array('product')))) . "') 
       AND {$wpdb->posts}.post_status = 'publish' 
       AND post_meta.meta_key IN ('" . implode("','", array_map('esc_sql', apply_filters('woocommerce_price_filter_post_type', array('_maxcarry')))) . "') 
       AND post_meta.meta_value > '' "; 
    $sql .= $meta_query_sql['where']; 
    var_dump($sql); 
    return $wpdb->get_row($sql); 

誰もがそれを助けるか、このスライダーを表示する別の方法を提案することができますか?

$meta_query = new WP_Meta_Query($meta_query); 
    $tax_query = new WP_Tax_Query($tax_query); 
    $meta_query_sql = $meta_query->get_sql('post', $wpdb->posts, 'ID'); 
    $tax_query_sql = $tax_query->get_sql($wpdb->posts, 'ID'); 

    $sql = "SELECT min(FLOOR(post_meta.meta_value)) as min_attr, max(CEILING(post_meta.meta_value)) as max_attr FROM {$wpdb->posts} "; 
    $sql .= " LEFT JOIN {$wpdb->postmeta} as post_meta ON {$wpdb->posts}.ID = post_meta.post_id " . $tax_query_sql['join'] . $meta_query_sql['join']; 
    $sql .= " WHERE {$wpdb->posts}.post_type IN ('" . implode("','", array_map('esc_sql', apply_filters('woocommerce_price_filter_post_type', array('product')))) . "') 
       AND {$wpdb->posts}.post_status = 'publish' 
       AND post_meta.meta_key IN ('" . implode("','", array_map('esc_sql', apply_filters('woocommerce_price_filter_meta_keys', array('_prod_sort_wcpaaf_sort')))) . "') 
       AND post_meta.meta_value > '' "; 
    $sql .= $tax_query_sql['where'] . $meta_query_sql['where']; 
    return $wpdb->get_row($sql); 

それが便利、誰のためにそれをここに残します:事前のおかげで

答えて

0

解決策が見つかりました。このためのSidenote - タクソノミのクエリとコード上の文字列を_prod_sort_wcpaaf_sortに変更することを忘れないでください。これはプロジェクトで使用する別のメタキーです。

関連する問題