Ukryj ceny i funkcjonalność kasy w woocommerce


17

Wiem, że to pytanie może być zbyt ogólne, ale szukam trochę kierunku. Mój klient ma sklep woocommerce z 30-40 produktami. Z jakiegokolwiek powodu nie chcą już sprzedawać online, ale chcą zachować strony produktów, informacje itp. Na swojej stronie internetowej.

Czy istnieje sposób, za pomocą haczyków lub w inny sposób, aby ukryć takie rzeczy jak ceny, przycisk dodawania do koszyka itp. W woocommerce? Czy powinienem po prostu edytować pliki szablonów php?

Odpowiedzi:


23

na szczęście woocommerce ma wiele haczyków, to usuwa ceny i przyciski:

remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );

możesz się w to zagłębić content-product.phpi content-single-product.phpjeśli chcesz usunąć więcej rzeczy.

Mogę sobie wyobrazić, że jest coś więcej niż tylko ceny / przyciski, które chcesz ukryć / usunąć (np. Strony / funkcje), ten samouczek zawiera kilka wskazówek


Czy mam rację, sądząc, że te haczyki należy wstawić do funkcji. Php? Jeśli tak, to czy jest jakaś sekcja, w której muszę je umieścić? Jeśli działają, prawdopodobnie funkcjonalność wózka nie będzie już widoczna, oprócz niektórych stylizacji, prawda?
— James

1
tak, możesz umieścić je w functions.php i nie ma znaczenia, gdzie umieścisz je w innej funkcji. Zwykle najbezpieczniejszy jest koniec pliku, o ile nie umieścisz go po ostatnim ?>. Nie spowoduje to usunięcia strony koszyka, ale faktycznie usunie możliwość dodania czegokolwiek do koszyka. Jeśli nigdzie nie podoba Ci się strona koszyka, powinieneś być względnie bezpieczny.
— Ewout,

To działa. Ale to dziwne. Po zastosowaniu tego zdjęcia produktów przestały się pojawiać. Pokazuje puste miejsce dla ich położenia, a kiedy przesuwam nad nimi mysz i klikam, pokazują mi odpowiedni obraz. Czy masz pomysł, dlaczego tak się dzieje?
— Brethlosze,

13

Rozszerzając powyższy kod (dzięki Ewout), poniższy kod pozbędzie się wszystkich cen i przycisków „dodaj do koszyka” na wszystkich produktach woocommerce, a także poda wyjaśnienie, dlaczego. Potrzebowałem kodu strony internetowej, która oferuje produkty do sprzedaży bezpośredniej i aby zachować zgodność z ich zasadami, nie mogę pokazywać cen opinii publicznej.

Dodaj filtr do pliku functions.php motywu.

    add_filter('woocommerce_get_price_html','members_only_price');

    function members_only_price($price){

if(is_user_logged_in() ){
    return $price;
}

else {
    remove_action( 'woocommerce_after_shop_loop_item', 'woocommerce_template_loop_add_to_cart' );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 );
    remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_add_to_cart', 30 );
    remove_action( 'woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_price', 10 );
    return 'Only <a href="' .get_permalink(woocommerce_get_page_id('myaccount')). '">Registered Users</a> are able to view pricing.';
      }

}

To jest dziwne. Po zastosowaniu tego zdjęcia produktów przestały się pojawiać. Pokazuje puste miejsce dla ich położenia, a kiedy przesuwam nad nimi mysz i klikam, pokazują mi odpowiedni obraz. Czy masz pomysł, dlaczego tak się dzieje?
— Brethlosze,

Ten kod nie działa w WooCommerce v 3.2.1:-)
— Steve

1
add_filter( 'woocommerce_is_purchasable', '__return_false' );
add_filter( 'woocommerce_get_price_html', '__return_empty_string' );

To całkowicie zapobiegnie kasie i ukryje wszystkie ceny poprzez:

  • Uczynienie wszystkich produktów niemożliwymi do zakupu (linia 1)
  • Opróżnianie ceny HTML (wiersz 2)
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.