Die größte Frage in WooCommerce, für die anscheinend niemand eine Lösung hat: „Wie kann ich WooCommerce einen benutzerdefinierten Beitragstyp hinzufügen?“.

 

WooCommerce hat einen eigenen benutzerdefinierten Beitragstyp, einen eigenen Beitragstyp und ein „Produkt“ für seinen Katalog oder sein Geschäft. Was zu der Frage führt, wie Sie Ihren eigenen benutzerdefinierten Beitragstyp hinzufügen können. Zum Zeitpunkt des Schreibens verfügt WooCommerce über keine integrierten Funktionen oder Filter, die dies problemlos durchführen können. Grundsätzlich unterstützt WooCommerce dies nicht.

 

Was für eine Enttäuschung, wenn Sie bereits eine Website mit Produkten und Katalogen verwenden. benutzerdefinierte Beitragstypen. Und Sie haben nicht die Zeit und das Budget, um dies in eine Woocommerce-Umgebung mit einem benutzerdefinierten Thema zu migrieren.

 

Gibt es dann keine Lösung? Ja, lesen Sie schnell weiter.

 

Der erste Schritt. Ein Produkt (ein beliebiger Nachrichtentyp) kann zum Warenkorb hinzugefügt werden, wenn es einen Preis hat. Ihr Beitragstyp muss jedoch einen benutzerdefinierten Feldpreis haben. Wenn Ihr Thema dies bereits unterstützt, wäre das großartig (wenn nicht, machen wir eines). Wir müssen nur sicherstellen, dass der Meta-Schlüssel „_price“ ist. Wie überprüfen Sie das? Sie können versuchen, das Element über den Browser zu überprüfen. Gehen Sie zur Administrationsseite Ihres Beitragstyps. Versuchen Sie, einen Beitrag auf der Administrationsseite Ihres Beitragstyps hinzuzufügen oder zu bearbeiten. Suchen Sie nach dem Textfeld mit dem Preisschild und klicken Sie mit der rechten Maustaste auf das Textfeld. Sie sollten das Attribut „_price“ finden. Normalerweise ist der Name der Meta-Schlüssel für ein benutzerdefiniertes Feld.

 

 

 

 

 

Wenn Ihr Meta-Schlüssel nicht zufällig „_price“ ist, machen Sie sich keine Sorgen, wir haben eine Lösung dafür. Fügen Sie diesen Code zu Ihrer functions.php hinzu (überspringen Sie, wenn Ihr Metaschlüssel „_price“ ist). Wenn Ihr Meta-Schlüssel „_price“ lautet, gehen Sie wie folgt vor:

 

<?php
add_filter(woocommerce_get_price,reigel_woocommerce_get_price,20,2);
function reigel_woocommerce_get_price($price,$post){
if ($post->post->post_type === post)
$price = get_post_meta($post->id, price, true);
return $price;
}

In Regel 4 wird nach Ihrem benutzerdefinierten Beitragstyp gesucht. Im obigen Codebeispiel versuche ich, den Post-Meta-Preis zu ermitteln und zurückzugeben. Ich überprüfe auch, ob der Beitragstyp „Beitrag“ ist, damit andere Beitragstypen nicht betroffen sind.

 

Sie können jetzt jede Nachricht hinzufügen, für die der Preis festgelegt wurde. Nachdem Sie den Preis für eine Nachricht festgelegt haben, fügen Sie der URL Ihres Browsers „? Add-to-cart = ID“ hinzu. Wobei ID die ID Ihres Beitrags ist. Wenn die ID Ihres Beitrags 1 lautet, sollte Ihr Link folgendermaßen aussehen: http: // localhost / wordpress / cart /? Add-to-cart = 1.

 

Nachdem Sie diesen Link besucht haben, sehen Sie unten so etwas wie dieses Bild.

 

 

 

 

 

 

 

 

 

 

 

 

Der nächste Schritt. Wenn Sie nun eine Nachricht zum Warenkorb hinzufügen können, müssen Sie jetzt die Schaltfläche „Zum Warenkorb hinzufügen“ erstellen. Es gibt viele Möglichkeiten, dies zu tun. Das Ziel ist jedoch ein Formular mit der Menge und der Schaltfläche „In den Warenkorb“.

 

Fügen Sie dies in Ihre functions.php ein: (Ich verwende den Filter ‚_content‘, aber bitte verwenden Sie einen anderen Filter / eine andere Aktion, die zu Ihrem Projekt passt.)

 

 

<?php
add_filter(the_content,rei_add_to_cart_button, 20,1);
function rei_add_to_cart_button($content){
global $post;
if ($post->post_type !== post) {return $content; }
ob_start();
?>
<form action= method=post>
<input name=add-to-cart type=hidden value=<?php echo $post->ID ?> />
<input name=quantity type=number value=1 min=1 />
<input name=submit type=submit value=Add to cart />
</form>
<?php
return $content . ob_get_clean();
}

Dieser Code fügt die Menge und die Schaltfläche „In den Warenkorb“ zu Ihrem Beitragstyp hinzu. Bitte beachten Sie, dass wir den Beitragstyp weiterhin prüfen, um andere Beitragstypen nicht zu beeinflussen.

 

 

 

 

 

 

 

 

 

 

Sie können das Formular platzieren, wo immer Sie möchten. Sie können das Formular sogar in Ihre einzelne {post_type} .php einfügen. Ein weiterer zu beachtender Punkt ist, dass Sie die Funktion „wc_print_notices ()“ in Ihrer einzelnen {post_type} .php aufrufen müssen. Dies führt zu Meldungen wie „“ Hallo Welt! „In den Warenkorb gelegt.“

 

Comments are closed.