Как узнать цену продукта woocommerce через functions.php - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь создать короткий код, который показывает 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 голосов
/ 19 июня 2019

Я использовал глобальный продукт внутри цикла 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();
}
0 голосов
/ 19 июня 2019

Вы можете получить детали продукта из ID.Используйте wc_get_product().Это вернет объект продукта.

$current_product = wc_get_product( get_the_ID() );

После этого вы можете использовать этот объект $current_product и получать соответствующую информацию о продукте, используя такие методы, как get_price().Пример.

echo $current_product->get_price();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...