Задать вопрос

Как задать карточке товара woocommerce свой title?

Здравствуйте товарищи! Уже который час бьюсь над проблемой - решил поинтересоваться у вас! В данный момент, на сайте wordpress с woocommerce на странице товара отображается тайтл страницы как название товара. Мне нужно сделать что-то типа "Купить {название товара} за {цена} рублей." Насколько я понял, нужно изменять файл wp-content\plugins\woocommerce\templates\single-product.php. Открыв его вижу функцию get_header( 'shop' ); - Но файла header-shop.php нигде нет. Прочитал, что если нет - нужно создать в корневой папке темы. Создал и в папке темы, и в папке вукоммерс - результата нет. Кто-нибудь сталкивался с этим?
  • Вопрос задан
  • 3414 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
an2studio
@an2studio
Во-первых, нужно скопировать файлы, которые будут правиться, из wp-content\plugins\woocommerce\templates\ в папку вашей темы themes/ваша_тема/woocommerce.
Должно получится так:
themes/ваша_тема/woocommerce/single-product/title.php - там увидите такой код:
the_title( '<h1 class="product_title entry-title">', '</h1>' );

Его можно заменить на такой код:
echo esc_html('Купить ') . get_the_title() . esc_html(' за ') . $product->get_price_html() . esc_html(' рублей');
Ответ написан
jimmykoks
@jimmykoks
Можно использовать произвольное поле. В моём случае это плагин ACF.
Создаем поле 'title-product'.
В файле темы header.php заменить существующую строку
<title><?php wp_title( ‘|’, true, ‘right’ ); ?></title>
(у меня она под номером 43) на:
<?php
	if(is_single()){ /* Если это товар*/
		if(get_field('title-product')){ /* Если поле заполнено */ ?>
			<title><?php the_field('title-product'); /* Показать значение поля */ ?></title>
		<?php }
		else { /* Если поле не заполнено */ ?>
			<title><?php> wp_title( '|', true, 'right' ); /* Показать стандартный тайтл */ ?></title>
		<?php }
	}
	else { /* Если это не товар */ ?>
		<title><?php wp_title( '|', true, 'right' ); /* Показать стандартный тайтл */ ?> </title>
	<?php }
	?>

Результат:
Если поле заполнено, то в тайтл запишется его значение, если нет, то покажется дефолтный тайтл из названия товара.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы