Получить варианты и цены - PullRequest
1 голос
/ 31 марта 2020

Я пытался создать собственный вид продуктов W C через короткий код. Мне удалось получить названия вариантов, но я не знаю, как получить цену для каждого отдельного варианта.

Во всей документации и других вопросах я нахожу только способ отображения максимальной и минимальной цены.

$products = wc_get_products( $args );
echo '<div id="restorana-wrapper">';
echo '<h3>' . $category . '</h3>';
echo '<ul class="dish-section">';
	foreach ($products as $product) {
    echo '<a href="' . $product->add_to_cart_url() . '">';
        echo '<li><div class="dish-container">';
            echo '<div class="dish-header">';
                echo '<span class="dish-title">' . $product->get_title() . '</span>';
                echo '<span class="spacer"></span>';
		      // IF PRODUCT IS SIMPLE SHOW PRICE (THIS WORKS OK)
					if ($product->get_type() == "simple") {
					echo '<span class="dish-price">' . $product->get_price() . '</span>';
					}
          // IN PRODUCT IS VARIABLE SHOW PRICE (THIS DOESNT WORK)
					if ($product->get_type() == "variable") {
						foreach ($product->get_variation_attributes() as $variations) {
							foreach ($variations as $variation) {
								echo $variation->regular_price . " - " . $variation;
							}
						}
					}
		
		
		
            echo '</div>';
        echo '<p class="dish-description">' . $product->get_description() . '</p>';
        echo '</div></li>';
    echo '</a>';
	
}

1 Ответ

2 голосов
/ 31 марта 2020

Вместо блока foreach ($product->get_variation_attributes() as $variations) {...} вы можете использовать:

    $variations     = wc_get_products(
        array(
            'status'  => array( 'private', 'publish' ),
            'type'    => 'variation',
            'parent'  => $product->ID,
            'limit'   => 0,
            'orderby' => array(
                'menu_order' => 'ASC',
                'ID'         => 'DESC',
            ),
            'return'  => 'objects',
        )
    );

    foreach ($variations as $variation) {
        //Treat $variation as a simple WC_Product.
        //So all methods like get_title() as get_price() will work

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