Woocommerce цена в цикле отображается на неправильном элементе - PullRequest
0 голосов
/ 29 июня 2018

Следуя инструкциям здесь http://www.w3bdeveloper.com/how-to/how-to-get-regular-price-of-a-product-in-wordpress-woocommerce/

Используя следующий код для вызова цены внутри цикла, цена отображает неправильную цену за единицу.

Первый товар не имеет цены, второй товар имеет цену первого товара, третий товар имеет вторую цену и т. Д.

      <div class='price'>
        <?php echo $product->regular_price; ?>
      </div>

Если я использую <?php echo $product->get_price_html(); ?>, он отображается правильно, но я хотел бы иметь возможность отображать цену продажи и обычную цену отдельно. Также по какой-то причине, если я использую этот код перед кодом кнопки, я получаю фатальную ошибку.

Код цикла выглядит следующим образом:

<div class='post'>

    <a class='oxy-post-image' href='<?php the_permalink(); ?>'>
          <div class='oxy-post-image-fixed-ratio' style='background-image: url(<?php echo get_the_post_thumbnail_url(); ?>);'></div>

          <div class='price-overlay'>
            <?php echo $product->regular_price; ?>
          </div>    
    </a>
    <div class='post-wrapper'>    
        <a class='oxy-post-title' href='<?php the_permalink(); ?>'><?php the_title(); ?></a>    
        <div class='oxy-post-meta'>

            <div class='cart-button'>
                <?php global $product; echo apply_filters( 'woocommerce_loop_add_to_cart_link',
                      sprintf( '<a href="%s" rel="nofollow" data-product_id="%s" data-product_sku="%s" class="button %s product_type_%s">%s</a>',
                      esc_url( $product->add_to_cart_url() ),
                      esc_attr( $product->get_id() ),
                      esc_attr( $product->get_sku() ),
                      $product->is_purchasable() ? 'add_to_cart_button' : '',
                      esc_attr( $product->get_type() ),
                      esc_html( $product->add_to_cart_text() ) ),$product ); ?>
            </div>
            </div>    
    </div>    
</div>

Скриншот элементов в цикле: store screenshot

1 Ответ

0 голосов
/ 29 июня 2018

Попробуйте объявить global $product перед использованием echo $product->regular_price; так:

<div class='price-overlay'>
        <?php global $product; echo $product->regular_price; ?>
</div> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...