Voralle im B2B Bereich sieht man immer wieder Online Shops die die Preise von Produkte deaktiviert haben oder dann gibts Webshops wo man bei gewissen Produkte keine Kauffunktion findet sondern eine Kontaktmöglichkeit (Evtl ist das Produkt ausverkauft oder es der Verkäufer benötigt mehr Informationen).
Meistens sieht man in diesen Fällen dann wohl das Produkt und evtl noch den Preis aber man kann das Produkt nicht in den Warenkorb legen – dafür gibts unten ein Formularfeld das man ausfüllen und abschicken kann.
Im heutigen Beitrag möchte ich euch zeigen, wie ihr sowas auch in eurem WooCommerce Shop machen könnt
Video
Kontaktformular
Ich verwende in meinem Beispiel wie immer das Contact Form 7 Kontaktformular aber ihr könnt natürlich auch jedes andere Kontaktformular verwenden – ihr braucht einfach einen Shortcode den ihr dann ins Script einbaut.
In Contact Form 7 – gebe ich im E-Mail Feld noch diesen Shortcode ein [_post_url] – damit wird nämlich in die eMail ein Link eingebaut womit ich sehen kann, von welcher Unterseite/ Produkt diese Anfrage / eMail kommt.
Für alle Produkte deaktivieren
Mit diesem Code hier werden alle Produkte so deaktiviert. Ihr müsst unten nur den Shortcode zum Kontaktformular einbauen un zwar innerhalb der beiden “ Gänsefüsschen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | add_filter( 'woocommerce_is_purchasable', '__return_false'); // DISABLING PURCHASE FUNCTIONALITY AND REMOVING ADD TO CART BUTTON FROM NORMAL PRODUCTS remove_action('woocommerce_single_variation', 'woocommerce_single_variation', 10); // REMOVING PRICE FROM VARIATIONS remove_action('woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20); // REMOVING ADD TO CART BUTTON FROM VARIATIONS // Add an enquiry form on Woocommerce single product page add_action( 'woocommerce_single_product_summary', 'single_product_message', 20 ); function single_product_message() { echo '<p class="woocommerce-message">Send us an enquiry </p>'; echo do_shortcode('[xxx]'); // füge hier den Shortcode zwischen die '' ein } |
Nur gewisse Produkte deaktivieren
Möchte man diese Funktion nur bei einzelnen Produkte aktiviert haben aber nicht bei allen, dann sucht die Produkt ID und gebt sie unten im Array ein. Dann könnt ihr noch entscheiden ob ihr die Preise verstecken wollt oder nicht (Wenn nicht löscht diese „woocommerce_single_product_summary“ Zeile aus dem Script). Und am Schluss müsst ihr noch euren Kontaktformular Shortcode einbauen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | // hier die produkt id der produkt eingeben, wo die kauffunktion deaktiviert werden soll $disabled_products = array(xx,yy,zz); add_filter( 'woocommerce_is_purchasable', 'disable_purchase_for_specific_products', 10, 2 ); function disable_purchase_for_specific_products( $is_purchasable, $product ) { global $disabled_products; if ( in_array( $product->get_id(), $disabled_products ) ) { return false; } return $is_purchasable; } add_action('wp', 'remove_variation_actions_for_specific_products'); function remove_variation_actions_for_specific_products() { global $disabled_products; if ( is_product() && in_array( get_the_ID(), $disabled_products ) ) { remove_action('woocommerce_single_variation', 'woocommerce_single_variation', 10); remove_action('woocommerce_single_variation', 'woocommerce_single_variation_add_to_cart_button', 20); remove_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_price', 10 ); //preis verstecken } } // Mitteilung anpassen add_action( 'woocommerce_single_product_summary', 'single_product_message', 20 ); function single_product_message() { global $disabled_products; if ( in_array( get_the_ID(), $disabled_products ) ) { echo '<p class="woocommerce-message">Send us an enquiry</p>'; echo do_shortcode('[xxx]'); // füge hier den Shortcode zwischen die '' ein } } |
0 Kommentare