我想为订单列表中的一些订单列的内容设置样式("我的帐户"区域(。问题是,每一个内容开始时都没有任何我可以用于样式的元素。
例如:我想给订单状态一个像徽章一样的背景色。目前,状态是列中唯一的内容。像这样:
<td class="woocommerce-orders-table__cell woocommerce-orders-table__cell-order-status" data-title="Status">
Completed
</td>
我想把它改成这个:
<td class="woocommerce-orders-table__cell woocommerce-orders-table__cell-order-status" data-title="Status">
<span class="badge badge-success">Completed</span>
</td>
class
是一个选项。我也可以基于<td>
的类来设计简单的<span>
。
有没有任何方法可以在不接触模板文件的情况下更改列的输出?这是一个非常关键的模板,我不想为了这么简单的添加而更改它。
在模板中,我看到了每个专栏内容之前的这个动作:
<?php if ( has_action( 'woocommerce_my_account_my_orders_column_' . $column_id ) ) : ?>
有办法使用它吗?
这确实是正确的方法,在这种情况下使用列id"订单状态">
woommerce_my_account_my_orders_column_{$column_id}
function my_callback( $order ) {
echo '<span class="badge badge-success">' . esc_html( wc_get_order_status_name( $order->get_status() ) ) . '</span>';
}
add_action( 'woocommerce_my_account_my_orders_column_order-status', 'my_callback', 10, 1 );