【问题标题】:Add multiple custom columns to WooCommerce "My account" orders table将多个自定义列添加到 WooCommerce“我的帐户”订单表
【发布时间】:2022-01-18 13:13:36
【问题描述】:

我正在尝试向 WooCommerce > 我的帐户 > 订单页面添加几列。

到目前为止,下面的代码添加了不止一列,但列的内容没有显示,我哪里弄错了?

add_filter( 'woocommerce_account_orders_columns', 'add_account_orders_column', 10, 1 );
function add_account_orders_column( $columns ){
    
     unset($columns['order-total']);
   $columns['custom-column'] = __( 'New Column', 'woocommerce' );
    $columns['custom-column2'] = __( 'New Column 2', 'woocommerce' );

    return $columns;
}

add_action( 'woocommerce_my_account_my_orders_column_custom-column', 'add_account_orders_column_rows' );
function add_account_orders_column_rows( $order ) {
    // Example with a custom field

    if( $columns == 'custom-column' ) {

        echo 'Hello';

    }

    if( $columns == 'custom-column2' ) {

        echo 'Hello 2';

    }
} 

【问题讨论】:

标签: php wordpress woocommerce hook-woocommerce orders


【解决方案1】:

woocommerce_account_orders_columns 过滤器挂钩允许我们添加 1 列或更多列

// Add new column(s) to the "My Orders" table in the account.
function filter_woocommerce_account_orders_columns( $columns ) {
    $columns['custom-column'] = __( 'New Column 1', 'woocommerce' );
    $columns['custom-column2'] = __( 'New Column 2', 'woocommerce' );

    return $columns;
}
add_filter( 'woocommerce_account_orders_columns', 'filter_woocommerce_account_orders_columns', 10, 1 );

但是,每列添加内容是通过 woocommerce_my_account_my_orders_column_{$column_id} 操作挂钩完成的。

所以在这种特殊情况下,{$column_id} 需要替换为列键 slug(custom-columncustom-column2)。 因此,无需通过 if 条件确定回调函数中的正确列

所以你得到:

// Adds data to the custom column in "My Account > Orders"
function filter_woocommerce_my_account_my_orders_column_custom_column( $order ) {    
    echo 'New Column 1';
}
add_action( 'woocommerce_my_account_my_orders_column_custom-column', 'filter_woocommerce_my_account_my_orders_column_custom_column', 10, 1 );

// Adds data to the custom column in "My Account > Orders"
function filter_woocommerce_my_account_my_orders_column_custom_column2( $order ) {    
    echo 'New Column 2';
}
add_action( 'woocommerce_my_account_my_orders_column_custom-column2', 'filter_woocommerce_my_account_my_orders_column_custom_column2', 10, 1 );

【讨论】:

  • 感谢您的澄清,工作完美。
猜你喜欢
  • 1970-01-01
  • 2021-06-08
  • 2021-04-19
  • 2017-09-17
  • 2017-06-14
  • 2022-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多