Wordpress Woocommerce Widget自定义价格,带千位分隔符和十进制分隔符

Wordpress Woocommerce Widget自定义价格,带千位分隔符和十进制分隔符,wordpress,woocommerce,widget,Wordpress,Woocommerce,Widget,我正在使用一个模板,它有一个小部件在主页上显示woocommetce产品,目前产品的价格只是一个数字,例如。₹18500/-没有任何小数或逗号,我想用千位分隔符和小数分隔符显示价格,例如。₹ 18500/- 注意:从woocommerce设置中启用了千位分隔符和十进制分隔符,这里我想在小部件上显示价格。 我附加的小部件代码 任何帮助都将不胜感激 * Filter the arguments for the Recent Posts widget.

我正在使用一个模板,它有一个小部件在主页上显示woocommetce产品,目前产品的价格只是一个数字,例如。₹18500/-没有任何小数或逗号,我想用千位分隔符和小数分隔符显示价格,例如。₹ 18500/-

注意:从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
} ```

*筛选最近发布小部件的参数。
*
*@自1.0.0以来
*
*@见WP_查询
*
*/
$query\u args=数组(
“每页帖子”=>$post\U编号,
“发布状态”=>“发布”,
“post_类型”=>“产品”,
“未找到行”=>1,
“订单”=>$order,
“元查询”=>array(),
“tax_query”=>数组(
'关系'=>'和',
),
);
交换机($wc\U高级\U选项){
“特色”案例:
如果(!empty($product\u visibility\u term\u id['featured'])){
$query\u args['tax\u query'][]=数组(
“分类法”=>“产品可视性”,
'field'=>'term\u taxonomy\u id',
“术语”=>$product\U VISITY\U term\U ids[“特色”],
);
}
打破
“销售”案例:
$product_ids_on_sale=wc_get_product_id_on_sale();
如果(!空($product\U ids\U on\U sale)){
$query\u args['post\u in']=$product\u ids\u on\u sale;
}
打破
“猫”一案:
如果(!空($travel\u way\u wc\u product\u cat)){
$query\u args['tax\u query'][]=数组(
“分类法”=>“产品分类”,
'field'=>'term_id',
“条款”=>$travel\u way\u wc\u product\u cat,
);
}
打破
案例“标签”:
如果(!空($travel\u way\u wc\u product\u tag)){
$query\u args['tax\u query'][]=数组(
“分类法”=>“产品标签”,
'field'=>'term_id',
“术语”=>$travel\u way\u wc\u产品\u标签,
);
}
打破
}
交换机($orderby){
案例“价格”:
$query_args['meta_key']='u price';
$query_args['orderby']='meta_value_num';
打破
“销售”案例:
$query_args['meta_key']='total_sales';
$query_args['orderby']='meta_value_num';
打破
案件编号:
案例“作者”:
“标题”一案:
案例“日期”:
案例“修改”:
案例“兰德”:
案例“注释计数”:
“菜单顺序”案例:
$query_args['orderby']=$orderby;
打破
违约:
$query_args['orderby']='date';
}
$travel\u way\u characterized\u query=新的WP\u query($query\u args);
如果($travel\u way\u characterized\u query->have\u posts()):
echo$args['before_widget'];
$animation=“init animate zoomIn”;
?>
你可以用。应该是这样的:

$price = floatval($price);
$decimal_separator  = wc_get_price_decimal_separator();
$thousand_separator = wc_get_price_thousand_separator();
$decimals           = wc_get_price_decimals();
$formatted_price = number_format( $price, $decimals, $decimal_separator, $thousand_separator );
echo esc_html( $formatted_price . '/-');

谢谢你的回答,不幸的是价格不对。你能给出只有千个分隔符的代码吗?谢谢你的回答,不幸的是它取错了价格。你能给出只有千个分隔符的代码吗?