Добавьте отформатированную цену продукта Woocommerce к навигации по теме - PullRequest
1 голос
/ 27 марта 2019

Только что установил Wordpress с BeTheme и Woocommerce и столкнулся со следующей проблемой: при входе на страницу отдельного продукта присутствуют кнопки 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 голосов
/ 27 марта 2019

Лучше всего получить активную отформатированную цену продукта из WC_Product экземпляра объекта, используя выделенный get_price_html() метод .

Я тоже немного пересмотрел ваш код:

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>';
}

Протестировано и работает.

0 голосов
/ 27 марта 2019

Вы можете создать объект продукта, используя следующую функцию:

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

И после этого вы сможете получить доступ ко всем данным продукта. Все доступные методы можно найти здесь , но вам нужно:

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

и укажите переменную цены, какую цену вы хотите показать.

...