2016-06-29 10 views
2

Ich versuche, einen automatischen Text in der Beschreibung der WooCommerce-Artikel zu erstellen und "Artikel nur im Laden verfügbar."Automatischer Text in der Kurzbeschreibung von WooCommerce-Produkten

Ich dachte darüber in einer Funktion wie folgt setzen:

add_filter ('woocommerce_short_description', 'in_single_product', 10, 2); 

function in_single_product() { 
    echo '<p> article only available in the store. </ p>'; 
} 

Aber diese den Text ersetzen, die bereits in der Kurzbeschreibung des Produkts geschrieben. Wenn ich keinen Text eingegeben habe, erscheint nichts.

Ist es möglich, den Text des Codes "Artikel nur im Laden verfügbar" ohne eine kurze Beschreibung des Produkts?

Vielen Dank.

Antwort

2

So kann man es auf diese Weise verwenden:

add_filter('woocommerce_short_description', 'single_product_short_description', 10, 1); 
function single_product_short_description($post_excerpt){ 
    global $product; 

    if (is_single($product->id)) 
     $post_excerpt = '<p class="some-class">' . __("article only available in the store.", "woocommerce") . '</p>'; 

    return $post_excerpt; 
} 

Normalerweise dieser Code in einzelnen Produktseiten bestehenden kurzen Beschreibungstext außer Kraft setzen, wenn diese kurze Beschreibung vorhanden ...


(Update) - Bezogen auf Ihren Kommentar

Wenn Sie anzeigen möchten y dies ohne Überschreiben der Auszug (Kurzbeschreibung), können Sie es vor diese Weise hinzufügen:

add_filter('woocommerce_short_description', 'single_product_short_description', 10, 1); 
function single_product_short_description($post_excerpt){ 
    global $product; 

    if (is_single($product->id)) 
     $post_excerpt = '<div class="product-message"><p>' . __("Article only available in the store.", "woocommerce") . '</p></div>' . $post_excerpt; 

    return $post_excerpt; 
} 

So werden Sie Ihre Nachricht erhalten, bevor und nach (wenn kurze Beschreibung vorhanden) die Kurzbeschreibung ...

Sie können es in Ihrer aktiven Thema style.css Datei Targeting Stil der Klassenauswahl .product-message, zum Beispiel so:

.product-message { 
    background-color:#eee; 
    border: solid 1px #666; 
    padding: 10px; 
} 

Sie müssen Ihre eigenen Stil Regeln schreiben, um es zu bekommen, wie Sie wollen.

+0

Danke @LoicTheAztec, aber ich suche die Methode ohne anzuzeigen jeden writed Text ersetzt werden muß. Ist das möglich? –

+0

Vielen Dank @LoicTheAztec für Ihre Hilfe, ich schätze es. Aber ich denke, mein Englisch ist nicht gut genug ... Ein Kollege hat eine mögliche Lösung für das Problem gefunden. Arbeite gut, ich werde dich wissen lassen :) –

1

ich Update zu sagen, dass ich eine Lösung für mein Problem gefunden:

ich eine „Versandklasse“ in „Produkte“ mit dem Namen „Artikel nur im Speicher verfügbar“ erstellt und die Schnecke „productshop“.

dann in (mytheme) /woocommerce/single-product/meta.php I aufgenommen haben:

<?php 
$clase=$product->get_shipping_class(); 
if ($clase=="productshop") { 
if (get_locale()=='en_US') {echo 'Product only available in store';} 
else {echo 'Producte només disponible a la botiga';} 
}?> 

Dann habe ich nur den Versand des Produkts in die Methode auszuwählen.

Und das war's!

Vielen Dank für Ihre Antworten

Verwandte Themen