محدوده قیمت دسته بندی محصولات ووکامرس
در هر فروشگاه یا مغازه ای محصولات متفاوتی با قیمت های گوناگون یافت می شود در دسته بندی یک محصول ووکامرسی نیز چنین بوده و حتی در محصولات متغیر WooCommerce به طور پیش فرض یک محدوده قیمت وجود دارد که چیزی شبیه به این است: MIN-MAX یعنی کمترین قیمت نا بیشترین قیمت .
فرض کنید کاربری قصد دارد کمترین یا بیشتر قیمت یک دسته از کالا های مورد نظر خود را بداند چه باید کند ؟ آیا خوب نیست، در صفحه فروشگاه یا دسته بندی ، محدوده قیمت را برای هر دسته نشان دهیم؟
در این تصویر به خوبی قیمت های MIN و MAX برای هر دسته محصول خاص WooCommerce نشان داده شده است
برای این کار چه باید کنیم ؟ شما می توانید کد زیر را با استفاده از یک ویرایشگر در فایل فانکشن قالب خود قرار داده و لذت این ویژگی را به کاربران خود بدهید
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
add_filter( 'woocommerce_subcategory_count_html', 'irwoo_category_price_range', 9999, 2 ); function irwoo_category_price_range( $html, $category ) { $min = PHP_FLOAT_MAX; $max = 0.00; $all_ids = get_posts( array( 'post_type' => 'product', 'numberposts' => -1, 'post_status' => 'publish', 'fields' => 'ids', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'product_cat', 'field' => 'slug', 'terms' => $category->slug, ), array( 'taxonomy' => 'product_visibility', 'field' => 'name', 'terms' => 'exclude-from-catalog', 'operator' => 'NOT IN', ), ) ) ); foreach ( $all_ids as $id ) { $product = wc_get_product( $id ); if ( $product->is_type( 'simple' ) ) { $min = $product->get_price() < $min ? $product->get_price() : $min; $max = $product->get_price() > $max ? $product->get_price() : $max; } elseif ( $product->is_type( 'variable' ) ) { $prices = $product->get_variation_prices(); $min = current( $prices['price'] ) < $min ? current( $prices['price'] ) : $min; $max = end( $prices['price'] ) > $max ? end( $prices['price'] ) : $max; } } return ' (' . wc_format_price_range( $min, $max ) . ')'; } |
اگر به هر نحوی موفق به انجام این کار نشدید می توانید در ناحیه کاربری تیکت زده یا اینکه با ما تماس بگیرید