当前位置: 首页 > 知识库问答 >
问题:

将产品简短描述添加到WooCommerce管理订单预览

董霖
2023-03-14

我试图将我的产品简短描述作为一个新标签添加到我的订单页面,这样我们就有了一个更简单的方法来订购产品,而不必进入产品内部。

我看到目前SKU显示在产品下,理想情况下,它会有一个产品简短描述。

这就是我到目前为止所得到的结果,但是短描述没有输出

// Adds tab 
add_action( 'woocommerce_admin_order_item_headers', 'pd_admin_order_items_headers' );
function pd_admin_order_items_headers($order){
  ?>
  <th class="line_customtitle sortable" data-sort="your-sort-option">
    Product MPN
  </th>
  <?php
}

// Shows Short Desc
add_action( 'woocommerce_admin_order_item_values', 'pd_admin_order_item_values' );
function pd_admin_order_item_values( $product ) {
  ?>
  <td class="line_customtitle">
    <?php the_excerpt(); ?>
  </td>
  <?php
}

目前的结果显示

“没有摘录,因为这是一篇受保护的文章。”

我觉得它没有在产品中循环,并试图获取订单摘录,因此它说它受到保护,但我对此不太有经验。

感谢您的帮助。

共有2个答案

滕无尘
2023-03-14

@LoicTheAztec的答案对我不起作用,我修改了他的答案,并用下面替换了custom_admin_order_item_values函数,然后它就起作用了。

// Custom column content in the order "line items" html table
function custom_admin_order_item_values( $item_name, $item, $is_visible ){
    $product_id = $item->get_product_id(); // Get the product Id
    $excerpt = get_the_excerpt( $product_id ); // Get the short description
    // Output
    echo '<td class="line_custom-description">' . $excerpt . '</td>';
}
岳嘉容
2023-03-14

请尝试以下操作(代码已注释):

// Add a custom column to the order "line items" html table
add_action( 'woocommerce_admin_order_item_headers', 'custom_admin_order_items_headers', 20, 1 );
function custom_admin_order_items_headers( $order ){

    echo '<th class="line_custom-title sortable" data-sort="your-sort-option">';
    echo __('Short description', 'woocommerce') . '</th>';
}

// Custom column content in the order "line items" html table
add_action( 'woocommerce_admin_order_item_values', 'custom_admin_order_item_values', 20, 3 );
function custom_admin_order_item_values( $_product, $item, $item_id ) {
    // Only for "line_item" items type
    if( ! $item->is_type('line_item') ) return;

    // For product variation, we get the parent variable product (in case of)
    if( $_product->is_type('variation') ){
        $parent_product = $_product->get_parent();
        // The product variation description (as short description doesn't exist)
        $excerpt        = $_product->get_description(); 
        // If product variation description doesn't exist we display the short description of the parent variable product
        $excerpt        = empty($excerpt) ? $parent_product->get_short_description() : $excerpt;
    }
    // For other product types
    else {
        $excerpt        = $_product->get_short_description();
    }

    // Output
    echo '<td class="line_custom-description">' . $excerpt . '</td>';
}

代码进入活动子主题(或活动主题)的function.php文件。测试和工作

 类似资料: