Gui*_*one 5 wordpress woocommerce
我正在尝试修改Woocommerceorders.php表中的列。我想摆脱TOTAL列以及DATE列,然后添加一个新列,其中包含一些特定于我的商店的自定义信息。
以下功能曾经可以使用,但是自Woocommerce 2.6起不推荐使用。所以问题是,有人知道在2.6之后如何在此表中删除/添加列吗?
function wc_get_account_orders_columns() {
$columns = apply_filters( 'woocommerce_account_orders_columns', array(
'order-number' => __( 'Order', 'woocommerce' ),
'order-date' => __( 'Date', 'woocommerce' ),
'order-status' => __( 'Status', 'woocommerce' ),
'order-total' => __( 'Total', 'woocommerce' ),
'order-actions' => ' ',
) );
// Deprecated filter since 2.6.0.
return apply_filters( 'woocommerce_my_account_my_orders_columns', $columns );
}
Run Code Online (Sandbox Code Playgroud)
小智 7
在其他答案中没有提到如何使用自定义信息填充列。所以,完整的算法如下:
add_filter( 'manage_edit-shop_order_columns','your_function_name');
function your_function_name($columns)
{
// to remove just use unset
unset($columns['order_total']); // remove Total column
unset($columns['order_date']); // remove Date column
// now it is time to add a custom one
$columns['custom_column'] = "Column title";
return $columns;
}
Run Code Online (Sandbox Code Playgroud)
add_action( 'manage_shop_order_posts_custom_column' , 'your_function_name2' );
function your_function_name2( $column ) {
global $the_order; // you can use the global WP_Order object here
// global $post; // is also available here
if( $column == 'custom_column' ) {
// do stuff, ex: get_post_meta( $post->ID, 'key', true );
}
}
Run Code Online (Sandbox Code Playgroud)
您还可以查看本教程以获取更多示例。
我的一个朋友帮助了我。这是我最终使用的功能,以防任何人发现它有用:
function new_orders_columns( $columns = array() ) {
// Hide the columns
if( isset($columns['order-total']) ) {
// Unsets the columns which you want to hide
unset( $columns['order-number'] );
unset( $columns['order-date'] );
unset( $columns['order-status'] );
unset( $columns['order-total'] );
unset( $columns['order-actions'] );
}
// Add new columns
$columns['order-number'] = __( 'Reserva', 'Text Domain' );
$columns['reservation-date'] = __( 'Para el día', 'Text Domain' );
$columns['reservation-people'] = __( 'Seréis', 'Text Domain' );
$columns['order-status'] = __( 'Estado de la reserva', 'Text Domain' );
$columns['order-actions'] = __( ' ', 'Text Domain' );
return $columns;
}
add_filter( 'woocommerce_account_orders_columns', 'new_orders_columns' );
Run Code Online (Sandbox Code Playgroud)
请注意,没有必要先取消设置所有列,然后再像我一样重新设置它们,除非您想更改它们出现的顺序或在现有列之间插入新列。
| 归档时间: |
|
| 查看次数: |
3589 次 |
| 最近记录: |