如何通过functions.php获取woocommerce产品价格

时间:2019-06-18 17:43:38

标签: wordpress woocommerce

我正在尝试创建一个显示3种产品的代码,并且代码段如下所示:

function show_recent_products(){

    $args = array('posts_per_page' => 3, 'post_type' => 'product');

    $custom_query = new WP_Query( $args );

    if ( $custom_query->have_posts() ) { 
    echo '<div id="recent-posts" class="flex space-between">';

    while ( $custom_query->have_posts() ) { 

        $custom_query->the_post(); 
        echo '<div class="woocommerce_recent_products" style="background: url('.get_the_post_thumbnail_url().')">';

            echo '<p>';
            //echo get_regular_price();
            echo'</p>';

        echo '</div>';

    }
    echo '</div>';
    } 
    wp_reset_postdata();
}

如何掌握产品价格?

为什么我不使用默认的最新产品简码,原因是布局看起来完全不同,而且我不知道如何更改默认代码。

2 个答案:

答案 0 :(得分:0)

您可以从ID获取产品详细信息。使用wc_get_product()。这将返回产品对象。

$current_product = wc_get_product( get_the_ID() );

之后,您可以使用该对象$current_product,并使用其方法,例如get_price()来获取相关的产品信息。例子。

echo $current_product->get_price();

答案 1 :(得分:0)

我在while循环中使用了全局产品,并设法获得了所有产品信息。

function show_recent_products(){
    global $post;

    $args = array('posts_per_page' => 3, 'post_type' => 'product');
    $post_id = $post->ID;
    $product = wc_get_product( $post_id );

    $custom_query = new WP_Query( $args );

    if ( $custom_query->have_posts() ) { 
    echo '<div id="recent-posts" class="flex space-between">';

    while ( $custom_query->have_posts() ) { 

        $custom_query->the_post(); 
        global $product;
            echo '<a href="'. get_the_permalink() .'" class="woocommerce_recent_products flex align-center" style="background: url('.get_the_post_thumbnail_url().')">';

            echo '<div class="recent-content-inner">';
                echo '<div>';
                    echo '<p class="recent-add-title">';
                        echo get_the_title();
                    echo'</p>';
                    echo '<p class="recent-add-price">';
                        echo "R". $product->price;
                    echo'</p>';
                    echo '<p class="recent-add-cart">';
                        echo "ADD CART";
                    echo'</p>';
                echo'</div>';
            echo'</div>';

            echo "</a>";
    }
    echo '</div>';
    } 
    wp_reset_postdata();
}