Я пытаюсь создать автоматический текст в описании статей WooCommerce и поставить «статью, доступную только в магазине».
Я думал о том, чтобы включить его в такую функцию:
add_filter ('woocommerce_short_description', 'in_single_product', 10, 2); function in_single_product () { echo '<p> article only available in the store. </ p>'; }
Но это заменит текст, который уже написан в кратком описании продукта. Если я не помещаю текст, ничего не появляется.
Возможно ли положить текст кода «статья, доступная только в магазине» без краткого описания продукта?
Спасибо.
Поэтому вы можете использовать его так:
add_filter( 'woocommerce_short_description', 'single_product_short_description', 10, 1 ); function single_product_short_description( $post_excerpt ){ global $product; 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; 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; }
Вам нужно будет написать свои собственные правила стиля, чтобы получить их по своему усмотрению.
Я обновляю, чтобы сказать, что нашел решение моей проблемы:
Я создал «класс доставки» в «продуктах» с названием «статья, доступная только в магазине» и «продукт-магазин».
Затем в (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';} }?>
Тогда мне нужно только выбрать доставку продукта в метод.
Вот и все!
Спасибо за ваши ответы