Как на woocommerce заменить кнопку читать далее на добавить в корзину?

Как на woocommerce заменить кнопку читать далее на добавить в корзину?
Как на woocommerce заменить кнопку читать далее на добавить в корзину

Я использую тему wordpress для блога, и я хотел бы изменить текст «Читать дальше» на что-то похожее на язык, который я использую. Как я могу это сделать?

Как изменить текст «Читать далее»?

Способ №1 Перевести с помошью Loco Translate

Как на woocommerce заменить кнопку читать далее на добавить в корзину
Как на woocommerce заменить кнопку читать далее на добавить в корзину

Loco Translate обеспечивает редактирование файлов локализации WordPress в браузере и интеграцию с сервисами автоматического перевода.

Также предоставляет разработчикам инструменты для локализации, такие как извлечение строк и генерирование шаблонов.

Способ №2 Хук в файле functions.php

add_filter('gettext', 'translate_my_text' );
function translate_my_text($translated) { 
$translated = str_ireplace('Leave a comment on: “%s”', 'my text“%s”', $translated);
$translated = str_ireplace('Leave a Comment', 'my text', $translated);
$translated = str_ireplace('Read More', 'my text', $translated);
$translated = str_ireplace('READ MORE', 'my text', $translated);
return $translated; 
} 

Способ №3 Перезаписать файл вывода постов в дочерней теме

/themes/название_темы/template-parts/

	<div class="entry-content">
		<?php
		the_content(
			sprintf(
				wp_kses(
					/* В этом месте Вы можете изменить текст или заменить кнопку читать далее на добавить в корзину  */
					__( 'Continue reading<span class="screen-reader-text"> "%s"</span>', 'название_темы' ),
					array(
						'span' => array(
							'class' => array(),
						),
					)
				),
				wp_kses_post( get_the_title() )
			)
		);

		wp_link_pages(
			array(
				'before' => '<div class="page-links">' . esc_html__( 'Pages:', 'название_темы' ),
				'after'  => '</div>',
			)
		);
		?>
	</div><!-- .entry-content -->

Изменение текста на кнопках «добавить в корзину» для разных типов товаров

Наверное, самое простое и часто предлагаемое решение — обновить перевод. Это решение будет работать только в краткосрочной перспективе. Почему? Потому что после обновления перевода изменения будут перезаписаны и вам придется вводить их заново.

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

Поэтому я считаю, что изменение текстов путем обновления перевода — плохое решение, которое будет работать только в краткосрочной перспективе.

Если не перевод, то что? На помощь приходят фильтры

WooCommerce предназначен для разработчиков и пользователей, которые захотят изменить его работу. Многие вещи можно легко изменить, просто нужно уметь это делать.

Пригодятся фильтры, помогающие изменять результаты различных функций. Звучит сложно? Только на вид 🙂

Приведенный ниже код позволяет изменять текст на кнопках «добавить в корзину» для разных типов продуктов. Если вы хотите изменить текст на кнопке для продуктов с вариантами, вам просто нужно изменить текст «Выбрать параметры» на свой в приведенном ниже коде. Для простого товара «В корзину».

Просто вставьте код в свой файл functions.php в (дочернюю) тему. Используя этот код вместо изменения перевода, вы можете быть уверены, что сохраните свои изменения после обновления перевода. Вы также почти на 100% уверены, что обновление WooCommerce не удалит и ваши изменения.

Решение для WooCommerce 2.6.14 и ниже

<?php

add_filter( 'woocommerce_product_add_to_cart_text' , 'wpdesk_product_add_to_cart_text' );
/**
 * Change add to cart text for product types
 *
 */
function wpdesk_product_add_to_cart_text() {
	global $product;

	$product_type = $product->product_type;

	switch ( $product_type ) {
		case 'external':
			return __( 'Buy product', 'woocommerce' );
		break;
		case 'grouped':
			return __( 'View products', 'woocommerce' );
		break;
		case 'simple':
			return __( 'Add to cart', 'woocommerce' );
		break;
		case 'variable':
			return __( 'Select options', 'woocommerce' );
		break;
		default:
			return __( 'Read more', 'woocommerce' );
	}

}

Решение для WooCommerce 3.0

WooCommerce 3.0 внесла множество изменений в функции, и указанное выше решение не будет работать с новым WooCommerce. Но для этого есть плагин WC Custom Add to Cart для ярлыков 🙂

Дополнительные примеры того, как фильтры и действия работают в WooCommerce

На рубеже октября и ноября я подготовил и провел 2 лекции по WordUpach в Познани и Катовице о модификации тем WooCommerce и самой WooCommerce. Вы можете увидеть презентацию из Катовице ниже.

А на Github вы найдете дочернюю тему для Storefront с готовыми примерами использования фильтров и действий: https://github.com/swoboda/storefront-child-examples

Я настоятельно рекомендую вам внести изменения в WooCommerce таким образом.

вывоз мусора днепр вывоз мусора днепр