Intereting Posts
Проверка JQuery Не работает на Submit, если Submit имеет код jQuery .on Нажмите второй раз, не работая как отправить массив JSON через ajax? Как создать слайдер главной страницы WordPress с несколькими запросами для самых последних или избранных сообщений из 4 уникальных категорий? Ошибка при создании ссылки «» (дата) для jQueryUI datepicker с помощью setdate Как открыть popover для обновления моей записи в ANgularjs SilverStripe представляет HTML-форму через Ajax content.toggleAnimationClass (); не является функцией Почему не jQuery автоматически добавляет обратный вызов JSONP? Как скрыть открытое свернутое меню начальной загрузки после нажатия в другом месте на странице Плавная карусель Как применить шаблон столбца после создания jqgrid Sweet Alert Всплывающая подсказка перед загрузкой изображения Canvas HTML в PNG Как получить значение выпадающего списка jQuery onchange Как изменить вкладку Twitter Bootstrap, когда нажата кнопка?

Relabel “добавить в корзину” после добавления в корзину в WooCommerce

Я бы хотел переместить мою кнопку « Добавить в корзину» после щелчка по ней и добавить один элемент в корзину, чтобы добавить еще одну в корзину .

Это возможно?

У меня есть Child-Theme function.php со второй кнопкой мыши в корзину , и это работает.

Но я не знаю, как решить эту перемаркировку после добавления одного товара в корзину (в магазине продается только один товар разных размеров). Надеюсь, я поняла.

Вот мой код:

add_filter( 'woocommerce_product_add_to_cart_text', 'customizing_add_to_cart_button_text', 10, 2 ); add_filter( 'woocommerce_product_single_add_to_cart_text', 'customizing_add_to_cart_button_text', 10, 2 ); function customizing_add_to_cart_button_text( $button_text, $product ) { if ( WC()->cart->get_cart_contents_count() ) return __( 'Add one more to cart', 'woocommerce' ); } else { return __( 'Add to cart ', 'woocommerce' ); } 

ОБНОВЛЕНИЕ: Ниже вы найдете правильные условия для выполнения этой перемаркировки:

 add_filter( 'woocommerce_product_add_to_cart_text', 'customizing_add_to_cart_button_text', 10, 2 ); add_filter( 'woocommerce_product_single_add_to_cart_text', 'customizing_add_to_cart_button_text', 10, 2 ); function customizing_add_to_cart_button_text( $button_text, $product ) { $is_in_cart = false; foreach ( WC()->cart->get_cart() as $cart_item ) if ( $cart_item['product_id'] == $product->get_id() ) { $is_in_cart = true; break; } if( $is_in_cart ) $button_text = __( 'Add one more to cart', 'woocommerce' ); return $button_text; } 

Код идет в файле function.php вашей активной дочерней темы (или темы), а также в любом файле плагина.

Протестировано и работает.


если вы включили Ajax, для NON-переменных продуктов на страницах архивов (например, страницы магазина или страницы категорий товаров), и вы хотите получить это живое событие, вы должны добавить это тоже:

 add_action('wp_footer','custom_jquery_add_to_cart_script'); function custom_jquery_add_to_cart_script(){ if ( is_shop() || is_product_category() || is_product_tag() ): // Only for archives pages $new_text = __( 'Add one more to cart', 'woocommerce' ); ?>   

Код идет в файле function.php вашей активной дочерней темы (или темы), а также в любом файле плагина.

Протестировано и работает.

Добавьте add-to-cart.php в свою папку темы / woocommerce / loop. Затем добавьте код перед функцией кнопки sprintf.

 global $woocommerce; $items = $woocommerce->cart->get_cart(); $inCart = false; foreach ( $woocommerce->cart->get_cart() as $cart_item_key => $values ) { if($values['product_id'] == $product->id && $values['quantity'] > 1){ $inCart = true; break; } } $buttonText = $inCart?'add one more':'add to cart'; 

Измените последнюю строку в функции sprintf на

 esc_html( ( !empty( $product_addons ) )?'Select options':$buttonText ) 

Возможно, вам придется уточнить это, если вы включите корзину Ajax