2017-02-26 165 views
0

我试图在订单详细信息页面和订单电子邮件中显示产品变体描述。遵循这个例子Woocommerce: Display Product Variation Description on Cart page它适用于购物车,也适用于结帐。但似乎我无法找到正确的方式叫它的订单页面。Woocommerce:在订单页面上显示产品变体描述

$item = $cart_item['data']; 
if(!empty($item) && $item->is_type('variation')){ 
    echo '<dl><dd>' . $item->get_variation_description() } 

不工作,因为它要求对购物车项目数据.. 而这里WooCommerce displaying variable description after variable price建议不工作要么get_post_meta。

$_variable_description = get_post_meta($variation->id , '_variation_description', true); 

我试图把它无论是在订单细节,item.php类-WC-订单项-meta.php,当然还有电子邮件订单详细信息.php

有什么建议吗?谢谢!

回答

0
add_filter('woocommerce_order_item_name', 'display_product_description', 10, 2); 
    function display_product_description($item_name, $item) { 

     $_product = get_product($item['variation_id'] ? $item['variation_id'] : $item['product_id']); 


     $_var_description =''; 

     if ($item['variation_id']) { 
      $_var_description = $_product->get_variation_description(); 
     } 

     return $_var_description ; 
    } 

在你主题的functions.php的

+0

它的工作原理,因为它现在显示的订购页面和电子邮件上的变化说明。但现在它显示的描述,而不是产品的名称.. – Heiko

0

试试这个我终于找到了工作here现在显示的订购页面上的变化说明和订单电子邮件的解决方案。

add_filter('woocommerce_order_item_name', 'display_product_title_as_link', 10, 2); 
function display_product_title_as_link($item_name, $item) { 

    $_product = get_product($item['variation_id'] ? $item['variation_id'] : $item['product_id']); 

    $link = get_permalink($_product->id); 

    $_var_description =''; 

    if ($item['variation_id']) { 
     $_var_description = $_product->get_variation_description(); 
    } 

    return '<a href="'. $link .'" rel="nofollow">'. $item_name .'</a><br>'. $_var_description ; 
} 

它将变体描述放在标题的正下方,但对我有用。

0

最后发现工作 问题解决了一个解决方案,将它添加到子主题function.php:

add_filter('woocommerce_product_variation_title_include_attributes', '__return_false');