【问题标题】:Add "sub-total" to my-account/orders table将“小计”添加到我的帐户/订单表
【发布时间】:2019-10-02 11:48:33
【问题描述】:

尝试在 woocommerce my-account/orders 表中添加订单小计,但我似乎无法显示它。目前它添加了列和标签,但不显示订单小计。我目前正在使用以下代码:

add_filter( 'woocommerce_account_orders_columns', 
'add_account_orders_column', 10, 1 );
function add_account_orders_column( $columns ){
$columns['item_subtotal_tax_excl'] = __( 'Sub-total', '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 ( $value = $order->get_meta( 'item_subtotal_tax_excl' ) ) {
    echo esc_html( $value );
}
}

【问题讨论】:

  • 以防万一,我想显示小计,因为总反映金额减去优惠券(有时为 0),我正在构建一个自定义项目,我需要在兑换优惠券之前显示金额

标签: woocommerce woocommerce-theming


【解决方案1】:

WooCommerce 订单元数据中不存在购物车中的小计,因此您需要获取它并从订单商品中计算它:

add_filter( 'woocommerce_account_orders_columns', 'add_account_orders_column', 10, 1 );
function add_account_orders_column( $columns ){
    $columns['item_subtotal_tax_excl'] = __( 'Sub-total', 'woocommerce' );

    return $columns;
}

add_action( 'woocommerce_my_account_my_orders_column_custom-column', 'display_account_orders_column_rows_value' );
function display_account_orders_column_rows_value( $order ) {
    $subtotal = 0; // Initializing
    
    // Loop through order items (line items)
    foreach ( $order->get_items() as $item ) {
        // Sum item subtotal excluding taxes and not discounted 
        $subtotal += $item->get_subtotal(); 
    }
    
    echo $subtotal;
}

代码在您的活动子主题(或活动主题)的functions.php 文件中。经过测试并且可以工作。

相关:

【讨论】:

  • 与往常一样,我很确定您的代码可以正常工作,但在我的网站上,它添加了列但不显示值,我已经用对我有用的代码更新了我的问题。感谢您在 stack wordpress 社区的回复和高度参与
【解决方案2】:

编辑:以下代码对我有用:(helgatheviking 在 woocommerce slack 上提供的答案)

//show sub total in order page

add_filter( 'woocommerce_account_orders_columns', 
'add_account_orders_column', 10, 1 );

function add_account_orders_column( $columns ){

$columns['item_subtotal_tax_excl'] = __( 'Sub-Total', 
'woocommerce' );

return $columns;

}

add_action( 
'woocommerce_my_account_my_orders_column_item_subtotal_tax_excl', 
'add_account_orders_column_rows' );

function add_account_orders_column_rows( $order ) {

// Example with a custom field

if ( $value = $order->get_subtotal() ) {

echo esc_html( $value );

}
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-19
    • 1970-01-01
    • 2018-11-28
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多