Шорткоды для вывода цены вариации и описания товара в WooCommerce

Бывают ситуации, когда верстая страничку, необходимо в произвольном месте вывести шорткодом цену вариации или описание товара. В стандартном функционале WooCommerce таких шорткодов не предусмотрено, но есть решение!

Вывод шорткодом цены вариативного товара в WooCommerce

Чтобы вывести цену вариативного товара в WooCommerce шорткодом в нужном нам месте, необходимо добавить в файл function.php вашей темы следующий код:

function custom_price_shortcode_callback( $atts ) {

    $atts = shortcode_atts( array(
        'id' => null,
    ), $atts, 'cena_tovara' );

    $html = '';

    if( intval( $atts['id'] ) > 0 && function_exists( 'wc_get_product' ) ){
        // Get an instance of the WC_Product object
        $product = wc_get_product( intval( $atts['id'] ) );

        // Get the product prices
        $price = wc_get_price_to_display( $product, array( 'price' => $product->get_price() ) ); // Get the active price


        // Formatting html output
        if( ! empty( $price ) )
          
            $html = wc_price( $price );
    }
    return $html;
 }
 add_shortcode( 'cena_tovara', 'custom_price_shortcode_callback' );

Теперь на любой странице вы можете вывести цену вариации товара следующим шорткодом:

[cena_tovara id="123"]

Цифры «123» — это id вариации, его можно узнать в карточке товара слева от названия вариации.

Вывод шорткодом описания товара в WooCommerce

Чтобы вывести шорткодом в нужном нам месте описание товара, добавленного в WooCommerce, необходимо добавить в файл function.php вашей темы следующий код:

function custom_product_description($atts){
global $product;

try {
if( is_a($product, 'WC_Product') ) {
return wc_format_content( $product->get_description("shortcode") );
}

return "Product description shortcode run outside of product context";
} catch (Exception $e) {
return "Product description shortcode encountered an exception";
}
}
add_shortcode( 'custom_product_description', 'custom_product_description' );

Шорткод для вывода описания товара будет следующий:

[custom_product_description id="123"]

Цифры «123» — это id товара.

Описанная выше функция вывода шорткодом описания товара будет работать с правильным разбиением на абзацы. Если необходимо вывести неформатированный текст, то используйте следующий код в function.php

function display_product_description( $atts ){
    $atts = shortcode_atts( array(
        'id' => get_the_id(),
    ), $atts, 'opisanie_tovara' );

    global $product;

    if ( ! is_a( $product, 'WC_Product') )
        $product = wc_get_product($atts['id']);

    return $product->get_description();
}
add_shortcode( 'opisanie_tovara', 'display_product_description' );

а шорткод такой:

[opisanie_tovara id="123"]
Вывод кнопки добавления в корзину нужной нам вариации:

Эту ссылку можно поставить как на кнопку так и на любую фразу в тексте.

/cart/?add-to-cart=123

«123» — id нужной вариации товара. При нажатии на такую ссылку, откроется страница корзины сайта с добавленным товаром нужной нам вариации.

Поделись с друзьями или сохрани себе:

VK
Facebook
Telegram
WhatsApp

4 Комментариев

  1. Кстати, все сторонние коды я рекомендую вставлять не на прямую в файл темы, а через специальный плагин «My custom Functions».

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

Комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Привет! Я - Андрей. Занимаюсь обучением и разработкой сайтов на CMS WordPress и Elementor.

Мой ТОП хостингов в РФ

Мой ТОП хостингов в РБ

Хостинг за крипту в Европе