2014-09-17 19 views
7

Po kliknięciu przycisku Dodaj do koszyka Woocommerce wyświetla komunikat, przeglądanie koszyka, chcę edytować tę wiadomość, faktycznie edytuję wszystkie span, umieszczam ikonę itp. ..Woocommerce, Jak edytować wiadomość "dodano do koszyka"

+0

Chcesz zmienić wiadomość na AJAX dodać do koszyka lub na stronach produktów? – Abstract

+0

Tak, ta wiadomość, która mówi tylko "widok koszyka" Chcę to edytować, spróbowałem edytować klasę za pomocą css "przed", ale wynik nie jest taki fajny ... – Dante

Odpowiedz

-7

aby to zmienić, przejdź do woocommerce plugin następnie podążać tą ścieżką:

/includes/class-wc-frontend-scripts.php liczba linii: 157

+0

Chcę to edytować, ale bez edycji core, utworzyłem folder woocommerce na moim motywie, ale nie znalazłem tego pliku do edycji tej wiadomości, czy istnieje inny sposób na jej edycję? – Dante

+3

Uważaj! Nigdy nie próbuj bezpośrednio edytować plików podstawowych. Zawsze używaj "filtrów" lub "szablonów" w "motywach potomnych". Zawsze jest taki, którego szukasz. –

4

Czy próbowałeś filtr lubią po

function your_add_to_cart_message() { 
if (get_option('woocommerce_cart_redirect_after_add') == 'yes') : 
    $message = sprintf('%s<a href="%s" class="your-style">%s</a>', __('Successfully added to cart.', 'woocommerce'), esc_url(get_permalink(woocommerce_get_page_id('shop'))), __('Continue Shopping', 'woocommerce')); 
else : 
    $message = sprintf('%s<a href="%s" class="your-class">%s</a>', __('Successfully added to cart.' , 'woocommerce'), esc_url(get_permalink(woocommerce_get_page_id('cart'))), __('View Cart', 'woocommerce')); 
endif; 
return $message; 
} 
add_filter('wc_add_to_cart_message', 'your_add_to_cart_message'); 

W odpowiedzi na wiadomość aktualizowania ajax, spróbuj funkcję tłumaczenia jak:

function your_woo_ajax_solution($translation, $text, $domain) { 
    if ($domain == 'woocommerce') { // your domain name 
    if ($text == 'View Cart') { // current text that shows 
     $translation = 'Basket updated.'; // The text that you would like to show 
    } 
    } 

    return $translation; 
} 
add_filter('gettext', 'your_woo_ajax_solution', 10, 3); 
+1

Ta funkcja jest dobra, ale chcę zmienić wiadomość na liście produktów, po kliknięciu na przycisk Dodaj do koszyka funkcja ta zmieniła tylko wiadomość na stronie pojedynczego produktu. – Dante

1

Jeśli spojrzeć na add-to-cart.js pożary wyzwalacz added_to_cart na dodaniu produktu do koszyka. Wpadłem na to i zrobiłem to, co można dodać po dodaniu produktu do koszyka.

Nadzieję, że pomaga!

10

Dodaj filtr do swojego motywu/functions.php. Poniższy kod tylko zastępuje istniejący komunikat $. To nadpisze $ wiadomość prawie identyczną, która przedkłada link "do kasy" do wiadomości.

Upewnij się, że zwróciłeś wiadomość $.

Można oczywiście zmodyfikować istniejącą wiadomość, ponieważ cała rzecz jest przekazywana jako ciąg znaków za pośrednictwem pierwszego parametru lub zmiennej $ message var.

add_filter ('wc_add_to_cart_message', 'wc_add_to_cart_message_filter', 10, 2); 
function wc_add_to_cart_message_filter($message, $product_id = null) { 
    $titles[] = get_the_title($product_id); 

    $titles = array_filter($titles); 
    $added_text = sprintf(_n('%s has been added to your cart.', '%s have been added to your cart.', sizeof($titles), 'woocommerce'), wc_format_list_of_items($titles)); 

    $message = sprintf('%s <a href="%s" class="button">%s</a>&nbsp;<a href="%s" class="button">%s</a>', 
        esc_html($added_text), 
        esc_url(wc_get_page_permalink('checkout')), 
        esc_html__('Checkout', 'woocommerce'), 
        esc_url(wc_get_page_permalink('cart')), 
        esc_html__('View Cart', 'woocommerce')); 

    return $message; 
} 
+1

Dziękuję, to działało dla mnie. –

+1

To rozwiązanie już nie działa. WC 3.0 wymaga użycia "wc_add_to_cart_message_html" zamiast "wc_add_to_cart_message" i "wc_add_to_cart_message_filter" – GauchoCode

0

W woocommerce 3.0 "wc_add_to_cart_message" jest przestarzała i już nie działa. Więc gdy odpowiedź przez @zmonteca było ok, nie jest już pracuje nad woocommerce 3,0

Wystarczy zastąpić „wc_add_to_cart_message” z „wc_add_to_cart_message_html” i woalu ... działa.

add_filter ('wc_add_to_cart_message', 'wc_add_to_cart_message_filter', 10, 2); 
function wc_add_to_cart_message_filter($message, $product_id = null) { 
$titles[] = get_the_title($product_id); 

$titles = array_filter($titles); 
$added_text = sprintf(_n('%s has been added to your cart.', '%s have been added to your cart.', sizeof($titles), 'woocommerce'), wc_format_list_of_items($titles)); 

$message = sprintf('%s <a href="%s" class="button">%s</a>&nbsp;<a href="%s" class="button">%s</a>', 
       esc_html($added_text), 
       esc_url(wc_get_page_permalink('checkout')), 
       esc_html__('Checkout', 'woocommerce'), 
       esc_url(wc_get_page_permalink('cart')), 
       esc_html__('View Cart', 'woocommerce')); 

return $message;} 
Powiązane problemy