对此的任何帮助都非常感谢。
到目前为止,已经尝试了一些没有结果的东西,包括这里的建议:
Add product short description to Woocommerce admin orders preview
到目前为止,这就是我所拥有的:
add_action( 'woocommerce_admin_order_item_headers', 'custom_admin_order_items_headers', 20, 1 );
function custom_admin_order_items_headers( $order ){
echo '<th>';
echo __('Colour', 'woocommerce') . '</th>';
}
add_action( 'woocommerce_admin_order_item_values', 'custom_admin_order_item_values', 20, 3 );
function custom_admin_order_item_values( $_product, $item, $item_id ) {
$colour = $_product->get_attribute( 'colour' );
echo '<td>' . $colour . '</td>';
}每个产品都有许多属性,我希望在编辑顺序页面的新列中显示这些属性之一。
问题是,出于某种原因,产品属性是空的--如果我只是回显$_product,则属性中没有数据,即使它在DB中保存了一个值。
有什么想法吗?
我附上了我想要实现的目标的屏幕截图,虽然我可以让标题显示得很好,甚至连一个附加到产品上的数据数组都是空的。如果我用:
$_product->get_attribute( 'colour' )就像我成功地在其他地方做的一样,我得到了一个错误:
Uncaught Error: Call to a member function get_attribute() on null我尝试设置全局$product;在函数中,nada。

错误日志:
/home/customer/www/mysite/public_html/wp-content/themes/mytheme/functions.php:1237堆栈跟踪中对null的成员函数get_attribute()的调用:#0 /home/customer/www/mysite/public_html/wp-includes/class-wp-hook.php(288):custom_admin_order_item_values(NULL,Object(WC_Order_Item_Shipping) )( 26) #1 /home/mysite/public_html/wp-includes/class-wp-hook.php(312):WP_Hook->应用_过滤器(‘’,数组) #2 /home/customer/www/mysite/public_html/wp-includes/plugin.php(478):WP_Hook->do_action(Array) #3 /home/customer/www/mysite/public_html/wp-content/plugins/woocommerce/includes/admin/meta-boxes/views/html-order-shipping.php(53):do_action(‘woocommerce_adm.’,NULL,Object(WC_Order_Item_Shipping),( 26) #4 /home/customer/www/mysite/public_html/wp-content/plugins/woocommerce/includes/admin/meta-boxes/views/html-order-items.php(73):包括(‘/home/customer/.’) #5 /home/customer/www/mysite,在第1237行的/home/customer/www/mysite/public_html/wp-content/themes/mytheme/functions.php中
functions.php 1237上的行是:
$colour = $_product->get_attribute( 'colour' );如上文所述。
发布于 2019-11-27 14:23:29
这对我起了作用:
add_action('woocommerce_admin_order_item_values', 'my_woocommerce_admin_order_item_values', 10, 3);
function my_woocommerce_admin_order_item_values($_product, $item, $item_id = null) {
$colour = get_the_terms( $_product->post->ID, 'pa_colour');
echo '<td>' . $colour[0]->name . '</td>';
}必须沿着分类学的路线走,而不是get_attribute()。感谢这篇文章:
https://stackoverflow.com/questions/59070081
复制相似问题