WooCommerce – Einkaufsbutton deaktivieren und mit Anfrageformular ersetzen

von | Sep 25, 2024 | Allgemein | 0 Kommentare

Schlagwörter: WooCommerce

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

Einen Kommentar abschicken

Du kannst auf Fediverse-Profile verlinken, indem du fl:@benutzername in deinem Kommentar eingibst.

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert