Автоматический текст в кратком описании продуктов WooCommerce

Я пытаюсь создать автоматический текст в описании статей WooCommerce и выложить «статья доступна только в магазине».

Я думал о том, чтобы поместить его в функцию, подобную этой:

add_filter ('woocommerce_short_description', 'in_single_product', 10, 2);

function in_single_product () {
echo '<p> article only available in the store. </ p>';
}

Но это заменит текст, который уже написан в кратком описании товара. Если я не положил текст, ничего не появляется.

Можно ли поставить текст кода «статья доступна только в магазине» без краткого описания товара?

Спасибо.

3

Решение

Так что вы можете использовать это так:

add_filter( 'woocommerce_short_description', 'single_product_short_description', 10, 1 );
function single_product_short_description( $post_excerpt ){
global $product;

$product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;

if ( is_single( $product_id ) )
$post_excerpt = '<p class="some-class">' . __( "article only available in the store.", "woocommerce" ) . '</p>';

return $post_excerpt;
}

Обычно этот код переопределяет существующий текст краткого описания на отдельных страницах продукта, если это краткое описание существует…


(обновление) — связано с вашим комментарием

Если вы хотите отобразить это без переопределения выдержки (краткое описание), вы можете добавить его до этого способа:

add_filter( 'woocommerce_short_description', 'single_product_short_description', 10, 1 );
function single_product_short_description( $post_excerpt ){
global $product;

$product_id = method_exists( $product, 'get_id' ) ? $product->get_id() : $product->id;

if ( is_single( $product_id ) )
$post_excerpt = '<div class="product-message"><p>' . __( "Article only available in the store.", "woocommerce" ) . '</p></div>' . $post_excerpt;

return $post_excerpt;
}

Таким образом, вы получите ваше сообщение до, а после (если краткое описание существует) краткое описание…

Вы можете настроить стиль таргетинга в своей активной теме. style.css подать селектор классов .product-messageнапример, таким образом:

.product-message {
background-color:#eee;
border: solid 1px #666;
padding: 10px;
}

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

2

Другие решения

Я обновляюсь, чтобы сказать, что нашел решение своей проблемы:

Я создал «класс доставки» в разделе «продукты» с названием «артикул, доступный только в магазине» и слаг «productshop».

Затем в (mytheme) /woocommerce/single-product/meta.php я включил:

<?php
$clase=$product->get_shipping_class();
if ($clase=="productshop") {
if (get_locale()=='en_US') {echo 'Product only available in store';}
else {echo 'Producte només disponible a la botiga';}
}?>

Тогда мне остается только выбрать способ доставки товара в метод.

И это все!

Спасибо за ваши ответы

1

По вопросам рекламы [email protected]