WooCommerce中带有千位分隔符和小数点分隔符的自定义显示的产品价格

问题描述 投票:1回答:2

我正在使用带有widget的模板在我的主页上显示WooCommerce产品…目前,产品价格仅为一个数字,例如₹18500 /-,不带小数或逗号,我想显示价格,包括千位分隔符和十进制分隔符,例如¥ 18,500 /-

注意:从woocommerce设置启用了千位分隔符和十进制分隔符,这里我想在小部件上显示价格。我正在附加小部件的代码。

任何帮助将不胜感激。

这是我实际使用的代码:

             * Filter the arguments for the Recent Posts widget.
             *
             * @since 1.0.0
             *
             * @see WP_Query
             *
             */
            $query_args = array(
                'posts_per_page' => $post_number,
                'post_status'    => 'publish',
                'post_type'      => 'product',
                'no_found_rows'  => 1,
                'order'          => $order,
                'meta_query'     => array(),
                'tax_query'      => array(
                    'relation' => 'AND',
                ),
            );

            switch ( $wc_advanced_option ) {

                case 'featured' :
                    if( !empty( $product_visibility_term_ids['featured'] )){
                        $query_args['tax_query'][] = array(
                            'taxonomy' => 'product_visibility',
                            'field'    => 'term_taxonomy_id',
                            'terms'    => $product_visibility_term_ids['featured'],
                        );
                    }

                    break;

                case 'onsale' :
                    $product_ids_on_sale    = wc_get_product_ids_on_sale();
                    if( !empty( $product_ids_on_sale ) ){
                        $query_args['post__in'] = $product_ids_on_sale;
                    }
                    break;

                case 'cat' :
                    if( !empty( $travel_way_wc_product_cat )){
                        $query_args['tax_query'][] = array(
                            'taxonomy' => 'product_cat',
                            'field'    => 'term_id',
                            'terms'    => $travel_way_wc_product_cat,
                        );
                    }

                    break;

                case 'tag' :
                    if( !empty( $travel_way_wc_product_tag )){
                        $query_args['tax_query'][] = array(
                            'taxonomy' => 'product_tag',
                            'field'    => 'term_id',
                            'terms'    => $travel_way_wc_product_tag,
                        );
                    }

                    break;
            }

            switch ( $orderby ) {

                case 'price' :
                    $query_args['meta_key'] = '_price';
                    $query_args['orderby']  = 'meta_value_num';
                    break;

                case 'sales' :
                    $query_args['meta_key'] = 'total_sales';
                    $query_args['orderby']  = 'meta_value_num';
                    break;

                case 'ID' :
                case 'author' :
                case 'title' :
                case 'date' :
                case 'modified' :
                case 'rand' :
                case 'comment_count' :
                case 'menu_order' :
                    $query_args['orderby']  = $orderby;
                    break;

                default :
                    $query_args['orderby']  = 'date';
            }

            $travel_way_featured_query = new WP_Query( $query_args );
            if ($travel_way_featured_query->have_posts()) :
                echo $args['before_widget'];

                $animation = "init-animate zoomIn";
                ?>
                <section id="<?php echo esc_attr( $unique_id ); ?>" class="at-widgets acme-abouts <?php echo $bg_gray_class;?>">
                    <div class="container">
                        <?php
                        if ( ! empty( $title ) ) {
                            echo $args['before_title'] . esc_html( $title ) . $args['after_title'];
                        }
                        $div_attr = 'class="featured-entries-col woocommerce"';
                        ?>
                        <div class="row at-cat-product-wrap clearfix ">
                            <div <?php echo $div_attr;?>>
                                <?php
                                $travel_way_featured_index = 1;
                                while ( $travel_way_featured_query->have_posts() ) :$travel_way_featured_query->the_post();
                                    $travel_way_list_classes = 'single-list';

                                    if ( 1 == $column_number ) {
                                        $travel_way_list_classes .= " col-sm-12";
                                    } elseif ( 2 == $column_number ) {
                                        $travel_way_list_classes .= " col-sm-6";
                                    } elseif ( 3 == $column_number ) {
                                        $travel_way_list_classes .= " col-sm-4 col-md-4";
                                    } else {
                                        $travel_way_list_classes .= " col-sm-4 col-md-3";
                                    }

                                    ?>
                                    <div class="<?php echo esc_attr( $travel_way_list_classes ); ?>">
                                       <a href="<?php the_permalink();?>">
                                        <?php the_post_thumbnail($travel_way_img_size)?>
                                        <div class="caption">
                                       <h3 class="at-woo-title"><?php the_title();?></h3>

                                        <?php                                        
                                        woocommerce_template_loop_rating();
                                        $currency = get_woocommerce_currency_symbol();
                                        $price = get_post_meta( get_the_ID(), '_regular_price', true);
                                        $sale = get_post_meta( get_the_ID(), '_sale_price', true);

                                        if($sale) :
                                            global $post, $product;
                                            echo apply_filters( 'woocommerce_sale_flash', '<span class="onsale">' . esc_html__( 'Sale!', 'travel-way' ) . '</span>', $post, $product );
                                            ?>
                                        <p class="product-price">
                                            <del>
                                                <?php
                                                echo esc_html($currency);
                                                echo esc_html( $price );
                                                ?>
                                            </del>
                                            <?php
                                            echo esc_html($currency);
                                            echo esc_html( $sale . '/-' );
                                            ?>
                                        </p>    
                                        <?php elseif($price) : ?>
                                            <p class="product-price">
                                                <?php
                                                echo esc_html($currency);
                                                echo esc_html( $price . '/-');
                                                ?>
                                            </p>
                                        <?php endif; 
                                         ?> 
                                     </div>
                                   </a>
                                    </div><!--dynamic css-->
                                    <?php
                                    $travel_way_featured_index++;
                                endwhile;
                                ?>
                            </div><!--featured entries-col-->
                        </div><!--cat product wrap-->
                    <?php
                    echo $args['after_widget'];
                    echo "<div class='clearfix'></div>";
                    // Reset the global $the_post as this query will have stomped on it
                    ?>
                    </div>
                </section>
            <?php
            endif;
            wp_reset_postdata();
        }
    } // Class Travel_Way_Wc_Products ends here
} ```

php wordpress woocommerce widget price
2个回答
0
投票

您可以使用number_format。应该是这样的:


0
投票

第一个global $post, $product;必须位于if语句之前

© www.soinside.com 2019 - 2024. All rights reserved.