2017-08-19 14 views
0

J'ai deux produits sur mon site Web et souhaite afficher différents messages (dans le message Je souhaite utiliser HTML) lors de l'ajout de différents produits au panier. En ce moment, il affiche Product successfully added to cart. J'utilise ce code dans function.php de mon enfant qui fonctionne mais ne me donne pas ce que je veux exactement.Personnalisation des messages d'ajout au panier en fonction des ID de produit dans WooCommerce 3

add_filter ('wc_add_to_cart_message', 'wc_add_to_cart_message_filter', 10, 2); 
function wc_add_to_cart_message_filter($message, $product_id = null) { 
    $titles[] = get_the_title($product_id); 

$titles = array_filter($titles); 
$added_text = sprintf(_n('%s has been successfully added to your Basket.', '%s have been added to your Basket.', sizeof($titles), 'woocommerce'), wc_format_list_of_items($titles)); 

$message = sprintf('%s <a href="%s" class="button">%s</a>', 
       esc_html($added_text), 
       esc_url(wc_get_page_permalink('cart')), 
       esc_html__('View Cart', 'woocommerce')); 

return $message; 
} 
+0

J'ai deux produits disons p1 et p2, si l'un des produits est ajouté au panier, il affiche un message "Votre produit est ajouté au panier et un bouton de" Voir le panier "". Je veux afficher différents messages sur l'ajout de produits différents comme si j'ajoute p1 au panier, il devrait afficher "message1" et si ajouter p2 au panier, il devrait afficher "message2". J'espère que cela a du sens. –

Répondre

0

Depuis WooCommerce 3 wc_add_to_cart_message est remplacé par wc_add_to_cart_message_html comme il est maintenant dépréciée. La bonne façon d'obtenir ce travail personnalisation ajouter aux messages panier basés sur les ID de produits (ou même des catégories de produits):

add_filter ('wc_add_to_cart_message_html', 'wc_add_to_cart_message_html_filter', 10, 2); 
function wc_add_to_cart_message_html_filter($message, $products) { 

    foreach($products as $product_id => $quantity){ 

     // (If needed) get the WC_Product object 
     $product = wc_get_product($product_id); 
     // The product title 
     $product_title = $product->get_title(); 

     // Set Here a product category Id, name or slug (for example, if needed) 
     $product_category = "Clothing"; 
     if(has_term('clothing', 'product_cat', $product_id)){ 
      return __("My custom message for product category \"$product_category\" for $product_title ($product_id)", "woocommerce"); 
     } 

     // Set HERE your first Product ID 
     if($product_id == 37){ 
      return __("My custom message 1 for $product_title ($product_id)", "woocommerce"); 
     } 
     // Set HERE your Second Product ID 
     elseif($product_id == 40){ 
      return __("My custom message 2 for $product_title ($product_id)", "woocommerce"); 
     } 
    } 
    return $message; 
} 

du code dans le fichier function.php de votre thème enfant actif (ou le thème) ou aussi dans n'importe quel fichier plugin.

Testé dans WooCommerce 3+ et fonctionne.