2016-06-29 1 views
2

J'essaie de créer un texte automatique dans la description des articles WooCommerce et de mettre "article seulement disponible dans le magasin."Texte automatique en brève description des produits WooCommerce

Je pensais à le mettre dans une fonction comme ceci:

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

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

Mais remplacer le texte qui est déjà écrit dans la brève description du produit. Si je n'ai pas mis de texte, rien n'apparaît.

Est-il possible de mettre le texte du code "article uniquement disponible dans le magasin" sans une brève description du produit?

Merci.

Répondre

2

Vous pouvez donc l'utiliser de cette façon:

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; 
} 

Normalement, ce code remplacera existant texte courte description dans les pages de ce produit unique, si cette brève description existe ...


(mise à jour) - Relié à votre commentaire

Si vous voulez afficher y ce sans écraser l'extrait (brève description), vous pouvez l'ajouter avant de cette façon:

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; 
} 

Vous obtiendrez votre message avant et après (si brève description existe) la description courte ...

vous pouvez dénommer cibler dans votre fichier thème style.css actif le sélecteur de classe .product-message, par exemple la façon suivante:

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

vous aurez besoin d'écrire vos propres règles de style pour l'obtenir comme vous voulez.

+0

Merci @LoicTheAztec, mais je suis à la recherche de la méthode d'affichage sans avoir à remplacer tout texte writed. Est-ce possible? –

+0

Merci beaucoup @LoicTheAztec pour votre aide, je l'apprécie. Mais je pense que mon anglais n'est pas assez bon ... Un collègue a trouvé une solution possible au problème. Travaille bien je te le ferai savoir :) –

1

mise à jour je dire que j'ai trouvé une solution à mon problème:

J'ai créé une « classe d'expédition » dans « produits » avec le nom « article disponible uniquement dans la boutique » et la limace « productshop ».

Puis, en (mythème) /woocommerce/single-product/meta.php J'ai inclus:

<?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';} 
}?> 

Alors je ne dispose que de choisir l'expédition de produit dans la méthode.

Et c'est tout!

Merci pour vos réponses