d9d9_Sun
@d9d9_Sun
Продвигаю сайты.

Как изменить надпись «В корзину» на «В корзине» на лету в woocommerce?

При добавлении товара в корзину, меняется оформление и добавляется галочка.

6391b01846719384262457.png

Также реализовал, что если товар уже находится в корзине, то показывается текст "В корзине". Но это работает только если перезагрузить страницу.

Код реализации можно тут глянуть.
add_filter( 'woocommerce_product_add_to_cart_text', 'woo_archive_custom_cart_button_text' );
function woo_archive_custom_cart_button_text() {
global $woocommerce;
foreach( WC()->cart->get_cart() as $cart_item_key => $values ) {
$_product = $values['data'];

if( get_the_ID() == $_product->id ) {

return __('В корзине', 'woocommerce');
}
}
	if ( has_term( 'buynow', 'product_tag', $_product->id ) ) :
	return __( 'В корзину', 'woocommerce' );
	else:
	return __( 'В корзину', 'woocommerce' );
	endif;
}

add_filter('post_class', function($classes, $class, $product_id) {
	foreach( WC()->cart->get_cart() as $cart_item_key => $values ) {
	$_product = $values['data'];
		if( get_the_ID() == $_product->id ) {
        	$classes = array_merge(['added'], $classes);
    		return $classes;
		} 		
	}
	return $classes;
},10,3);


А как сделать так, чтобы вместе с появление галочки "В корзину" сразу же менялось на "В корзине" без перезагрузки страницы?
  • Вопрос задан
  • 66 просмотров
Решения вопроса 1
Kleindberg
@Kleindberg
Full stack
Чтобы тексты менялись на лету это уже нужно использовать JavaScript. Что-то типа такого:

$( ".add_to_cart_button" ).click(function() {
  $(this).text('В корзине');
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы