Как вывести h1, название категории и нужные атрибуты товара в тексте описания на странице товара Woocommerce?
Добрый день. Стоит задача сгенерировать большое количество описаний для товаров в интернет-магазине. Для дополнительной уникализации требуется подстановка в тексты названия товара, категории и определенных атрибутов (например: цвет, тип, размер и т.д.). Подскажите встречал ли кто-то плагины решающие такую задачу и какие есть альтернативные способы? Возможно по средствам каких-то шорткодов. Информацию нигде не могу найти.
Заранее благодарю.
otec46,
в целом, изменение заголовка страницы товара делается с помощью хука the_title, примерно так:
add_filter( 'the_title', 'my_custom_product_title' );
function my_custom_product_title( $title, $post_id ) {
if( is_product() ) {
// получаем данные товара
$product = wc_get_product( $post_id );
// переписываем дефолтный title
$title = sprintf(
'В нашем интернет магазине вы можете приобрести %s толщиной %s и покрытием %s ...', // шаблон заголовка
$product->get_name(), // название товара
$product->get_weight(), // толщина
$product->get_attribute( 'your_attr_name' ), // атрибут по названию
// ... и т.д.
);
}
return $title;
}
Но, если бы у вас был один общий шаблон для всех товаров - тогда всё просто.
Но, насколько я понял, у вас будут для разных товаров разные шаблоны. Если это так, то надо будет ещё подумать как привязать к товару шаблон. Скорее всего, это будет дополнительное кастомное мета-поле для товара (возможны другие варианты). Далее, вытаскивать шаблон из мета-поля и подставлять в него атрибуты товара. Как это реализовать - тут надо придумывать.
Михаил Нестеров, Заголовок страницы товара менять не нужно. Нужно сформировать описание товара с учетом его характеристик. Да, для каждой категории нужен свой шаблон текста.
Сами тексты описаний можно вставить по средствам массового импорта. В такой ситуации нужно подобие шорт-кодов с характеристиками товара.
Макс, я проверил сейчас, все работает. С категориями тоже. Если установлен плагин yoast seo и выбираете главной категорию, то надо использовать функцию get_the_terms()