我正在尝试将我的产品简短说明作为新标签添加到我的订购页面中,这样我们就可以更轻松地订购产品而不必进入产品内部。
我目前在产品下方看到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
}
当前结果说
“没有摘要,因为这是受保护的帖子。”
[我觉得它没有遍历产品并尝试获取订单摘录,因此为什么它说它受到保护,但我对此不太有经验。
感谢您的任何帮助。
请尝试以下内容,而不是(带注释代码):
// 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文件。经过测试和工作
@@ 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>';
}