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?

mile
źródło

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

Ewout
źródło
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.';
      }

}
Angela
źródło
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)
Nabil Kadimi
źródło