Я удалил стандартное сообщение «Добавлено в корзину», предоставленное WooCommerce.Затем я добавил код, который использует Sweet Alert.Идея состоит в том, чтобы удалить все сообщения «добавлено в корзину» и использовать только сладкое оповещение.
На основе " JS-оповещение о добавлении ajax в корзину для определенного количества категорий товаров в Woocommerce" код ответа @LoicTheAztec, мой код работает для первого добавленного продукта, , но не для следующих. Так что он отлично работает, когда корзина пуста и при добавлении первого продукта.
Вот код, который я использую:
// remove add to cart woocommerce message
add_filter('wc_add_to_cart_message_html', '__return_null');
// Wordpress Ajax PHP
add_action('wp_ajax_nopriv_checking_items', 'atc_sweet_message');
add_action('wp_ajax_checking_items', 'atc_sweet_message');
function atc_sweet_message() {
if (isset($_POST['id']) && $_POST['id'] > 0) {
$count = 0;
$product_id = $_POST['id'];
foreach(WC()-> cart-> get_cart() as $cart_item) {
$count += $cart_item['quantity'];
}
}
echo $count;
die();
}
// jQuery Ajax
add_action('wp_footer', 'item_count_check');
function item_count_check() {
if (is_checkout())
return;
?>
<script src="https://unpkg.com/sweetalert2@7.20.1/dist/sweetalert2.all.js"></script>
<script type="text/javascript">
jQuery( function($) {
if ( typeof wc_add_to_cart_params === 'undefined' )
return false;
$(document.body).on( 'added_to_cart', function( event, fragments, cart_hash, $button ) {
$.ajax({
type: 'POST',
url: wc_add_to_cart_params.ajax_url,
data: {
'action': 'checking_items',
'id' : $button.data( 'product_id' )
},
success: function (response) {
if(response == 1 ){
const toast = swal.mixin({
toast: true,
showConfirmButton: false,
timer: 3000
});
toast({
type: 'success',
title: 'Product Added To Cart'
})
}
}
});
});
});
</script>
<?php
}
Я попытался удалить if(response == 1 ){
, но безуспешно.Любой вклад в это приветствуется.