问题描述
我正在使用 Show products name and quantity in a new column on Woocommerce My account Orders 答案代码向 Woocommerce 我的帐户订单历史记录页面添加一个附加列,该列显示订单的商品标题。
如何让代码将标题显示为指向所订购商品的产品页面的超链接,而不仅仅是纯文本?
解决方法
要将每个产品标题链接到产品,您可以使用以下内容:
add_filter( 'woocommerce_my_account_my_orders_columns','additional_my_account_orders_column',10,1 );
function additional_my_account_orders_column( $columns ) {
$new_columns = [];
foreach ( $columns as $key => $name ) {
$new_columns[ $key ] = $name;
if ( 'order-status' === $key ) {
$new_columns['order-items'] = __( 'Items','woocommerce' );
}
}
return $new_columns;
}
add_action( 'woocommerce_my_account_my_orders_column_order-items','additional_my_account_orders_column_content',1 );
function additional_my_account_orders_column_content( $order ) {
$details = array();
foreach( $order->get_items() as $item )
$details[] = '<a href="' . $item->get_product()->get_permalink() . '">' . $item->get_name() . '</a> × ' . $item->get_quantity();
echo count( $details ) > 0 ? implode( '<br>',$details ) : '–';
}
代码位于活动子主题(或活动主题)的functions.php 文件中。经测试有效。