首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >修改woocommerce orders.php列

修改woocommerce orders.php列
EN

Stack Overflow用户
提问于 2016-10-17 18:09:21
回答 3查看 10.3K关注 0票数 9

我正在尝试修改Woocommerce orders.php表中的列。我想去掉总列和日期列,然后我想添加一个新列,其中包含一些特定于我的商店的自定义信息。

下面的函数曾经工作过,但自Woocommerce 2.6之后就被废弃了。所以问题是,有人知道如何在2.6之后删除/添加列到这个表中吗?

代码语言:javascript
复制
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 );
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-02-22 09:45:09

在其他答案中,没有提到如何使用自定义信息填充列。因此,完整的算法如下:

步骤1.添加或删除

代码语言:javascript
复制
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;    
}

步骤2.填写数据

代码语言:javascript
复制
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 );

    }

}

您还可以查看本教程以获得更多示例。

票数 6
EN

Stack Overflow用户

发布于 2016-10-19 11:38:47

我的一个朋友帮我解决了这个问题。下面是我最后使用的函数,以防有人发现它有用:

代码语言:javascript
复制
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' );

请注意,不需要首先取消设置所有列,然后再像我所做的那样重新设置它们,除非您希望更改它们在现有列之间附加或插入新列的顺序。

票数 9
EN

Stack Overflow用户

发布于 2018-01-16 06:54:20

这会帮到你的。

代码语言:javascript
复制
add_filter( 'manage_edit-shop_order_columns','your_function_name',10 );
function your_function_name($columns)
{
    unset($columns['order_total']);
    unset($columns['order_date']);
    return $columns;    
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40092967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档