Может ли кто-нибудь помочь мне решить следующую проблему с Woocommerce: для каждого из моих продуктов установлен флажок «Продано индивидуально». Поэтому я хочу изменить текст и URL своей кнопки, когда товар находится в корзине.
1) Я добавил следующий код в функции. php:
1.1)
function my_custom_cart_button_text($text, $product){
$product_cart_id = WC()->cart->generate_cart_id($product->get_id());
$in_cart = WC()->cart->find_product_in_cart($product_cart_id);
if($in_cart){
$text = __('VIEW CART', '');
}
return $text;
}
add_filter('woocommerce_product_single_add_to_cart_text', 'my_custom_cart_button_text ', 10, 2);
add_filter('woocommerce_product_add_to_cart_text', 'my_custom_cart_button_text ', 10, 2);
1.2)
function my_custom_cart_button_url_shop($url, $product){
$product_cart_id = WC()->cart->generate_cart_id($product->get_id());
$in_cart = WC()->cart->find_product_in_cart($product_cart_id);
if($in_cart && is_shop() || $in_cart && is_product_category()){
$url = esc_url(wc_get_cart_url());
}
return $url;
}
add_filter('woocommerce_product_add_to_cart_url', 'my_custom_cart_button_url_shop', 10, 2);
1.3)
function my_custom_cart_button_url_product(){
global $product;
$product_cart_id = WC()->cart->generate_cart_id($product->get_id());
$in_cart = WC()->cart->find_product_in_cart($product_cart_id);
if($in_cart){
remove_action('woocommerce_simple_add_to_cart', 'woocommerce_simple_add_to_cart', 30);
echo sprintf('<form class="cart"><a href="%s">%s</a></form>', esc_url(wc_get_cart_url()), __('VIEW CART', ''));
}
}
add_action('woocommerce_simple_add_to_cart', 'my_custom_cart_button_url_product');
2) Я добавил мини-корзину Woocommerce в шапку. php
2.1 )
the_widget('WC_Widget_Cart', '');
Моя проблема заключается в том, что когда я удаляю товар в мини-корзине Woocommerce, текст и URL-адрес кнопки изменяются только в случае перезагрузки страницы. Я бы хотел, чтобы текст и URL кнопки менялись сразу после ее удаления в мини-корзину. Что мне делать?