将Woocommerce格式化的产品价格添加到主题的产品导航中

时间:2019-03-27 12:29:55

标签: php wordpress woocommerce product price

仅安装了带有BeTheme和Woocommerce的Wordpress并面临以下问题:当进入单个产品页面时,存在Next-Prev按钮,其中显示有关Next-Prev产品的一些信息-名称,上传日期,图片。现在,我也想增加价格,但是StackOverflow中找不到的东西对我来说都行不通。

这是我的代码,要添加价格而不是日期。

如有需要,可以提供theme-shortcodes.php文件的代码。

谢谢。

    if( is_object( $post ) ){
        // move this DOM element with JS
        $output .= '<a class="fixed-nav fixed-nav-'. $next_prev .' format-'. get_post_format( $post ) .'" href="'. get_permalink( $post ) .'">';

            $output .= '<span class="arrow"><i class="'. $icon .'"></i></span>';

            $output .= '<div class="photo">';
                $output .= get_the_post_thumbnail( $post->ID, 'blog-navi' );
            $output .= '</div>';

            $output .= '<div class="desc">';
                $output .= '<h6>'. get_the_title( $post ) .'</h6>';
                $output .= '<span class="date"><i class="icon-clock"></i>'. get_the_date(get_option('date_format'), $post->ID) .'</span>';
            $output .= '</div>';

        $output .= '</a>';
    }

2 个答案:

答案 0 :(得分:0)

您可以使用以下功能创建产品对象:

$product = wc_get_product( $post->ID );

然后,您将可以访问所有产品的数据。可以找到所有可用的方法here,但您需要的是:

$regular_price = $product->get_regular_price();
$sale_price = $product->get_sale_price();
$price = $product->get_price();

并回显价格变量,您要显示哪个价格。

答案 1 :(得分:0)

最好的方法是使用dedicated get_price_html() methodWC_Product对象实例中获取有效的格式化产品价格

我也重新访问了您的代码:

if( is_a( $post, 'WP_Post' ) && 'product' === get_post_type( $post ) ){
    global $product;

    if( ! is_a( $product, 'WP_Product' ) ){
        $product = wc_get_product( $post->ID );
    }

    // move this DOM element with JS
    $output .= '<a class="fixed-nav fixed-nav-'. $next_prev .' format-'. get_post_format( $post ) .'" href="'. get_permalink( $post ) .'">
        <span class="arrow"><i class="'. $icon .'"></i></span>
        <div class="photo">' . get_the_post_thumbnail( $post->ID, 'blog-navi' ). '</div>
        <div class="desc">
            <h6>'. get_the_title( $post ) .'</h6>
            <span class="price">'. $product->get_price_html() .'</span>
        </div>  
    </a>';
}

经过测试可以正常工作。