【问题标题】:Add multiple custom columns (notes and VAT) on WooCommerce admin orders list在 WooCommerce 管理员订单列表中添加多个自定义列(注释和增值税)
【发布时间】:2021-12-08 07:48:16
【问题描述】:

如果订单中有客户备注,我已插入此 sn-p 以显示带有图标的附加列。它有效。

add_action( 'wp_enqueue_scripts', 'mini_enqueue_scripts' );

add_filter( 'manage_shop_order_posts_columns', 'woocommerce_add_order_notes_column', 99 );
function woocommerce_add_order_notes_column( $columns ) {
    $columns['order_notes'] = __('Customer note', 'woocommerce');
    return $columns;
}

add_action( 'manage_shop_order_posts_custom_column' , 'woocommerce_show_order_notes_column', 10, 2 );
function woocommerce_show_order_notes_column( $column_name, $order_id ) {
    switch ( $column_name ) {
        case 'order_notes':
            $order = wc_get_order( $order_id );
            $note = $order->get_customer_note();
            if ( !empty($note) ) {
                echo '<span class="note-on tips" data-tip="' . wc_sanitize_tooltip( $note ) . '">' . __( 'Yes', 'woocommerce' ) . '</span>';
            } else {
                echo '<span class="na">&ndash;</span>';
            }
            break;
    }
}

如何在执行相同操作的一侧创建另一列(如果已在订单中输入增值税号)?

为此,我在结帐页面上有两个附加字段:“增值税号”(billing_piva)和“CID 号”(billing_cid)。我想将它们放在同一列上,首先有两个标题,例如:

  • “增值税号:xxx”和“CID 号:xxx”

有什么建议吗?

【问题讨论】:

    标签: wordpress woocommerce backend checkout orders


    【解决方案1】:

    要添加 2 列而不是 1 列,您实际上可以应用与添加 1 列相同的方法

    可以通过不同的方式将增值税号添加到订单中,根据您的问题,我了解到这是一个带有元键的自定义结帐字段:billing_piva

    注意:不需要使用add_action( 'wp_enqueue_scripts', 'mini_enqueue_scripts' );

    所以你得到:

    // Display on order admin list (header)
    function filter_manage_edit_shop_order_columns( $columns ) {
        // Add columns
        $columns['order_notes'] = __( 'Customer note', 'woocommerce' );
        $columns['order_vat'] = __( 'VAT number', 'woocommerce' );
    
        return $columns;
    }
    add_filter( 'manage_edit-shop_order_columns', 'filter_manage_edit_shop_order_columns', 10, 1 );
    
    // Display on order admin list (populate the column)
    function action_manage_shop_order_posts_custom_column( $column, $post_id ) {
        // Get order
        $order = wc_get_order( $post_id );
        
        // Is a WC_Order
        if ( is_a( $order, 'WC_Order' ) ) {
            // Compare
            switch ( $column ) {
                case 'order_notes':
                    // Get customer note
                    $note = $order->get_customer_note();
                    
                    // NOT empty
                    if ( ! empty( $note ) ) {
                        echo '<span class="note-on tips" data-tip="' . wc_sanitize_tooltip( $note ) . '">' . __( 'Yes', 'woocommerce' ) . '</span>';
                    } else {
                        echo '<span class="na">&ndash;</span>';
                    }
                    
                    break;
                case 'order_vat':
                    // Get VAT (if necessary, adjust to the correct meta key)
                    $vat_number = $order->get_meta( 'billing_piva' );
                    
                    // NOT empty
                    if ( ! empty( $vat_number ) ) {
                        // Output
                        $output = '<span>' . sprintf( __( 'VAT Number: %s', 'woocommerce' ), $vat_number ) . '</span>';
                        
                        // Get CID number
                        $cid_number = $order->get_meta( 'billing_cid' );
                        
                        // NOT empty 
                        if ( ! empty ( $cid_number ) ) {
                            // Concatenation 
                            $output .= '<br><span>' . sprintf( __( 'CID Number: %s', 'woocommerce' ), $cid_number ) . '</span>';
                        }
                        
                        // Print
                        echo $output;
                    } else {
                        echo '<span class="na">&ndash;</span>';
                    }               
            }
        }
    }
    add_action( 'manage_shop_order_posts_custom_column' , 'action_manage_shop_order_posts_custom_column', 10, 2 );
    

    【讨论】:

      猜你喜欢
      • 2021-07-25
      • 2021-04-15
      • 1970-01-01
      • 1970-01-01
      • 2021-12-19
      • 1970-01-01
      • 1970-01-01
      • 2018-01-12
      • 1970-01-01
      相关资源
      最近更新 更多