返回

WooCommerce 8.6.1 中如何恢复丢失的订单管理列并优化你的网站

php

WooCommerce 8.6.1 中恢复丢失的订单管理列

引言

WooCommerce 8.6.1 及以上版本的管理订单页面,默认情况下将不再显示“配送方式”和“付款方式”列。本文将提供详细的分步指南,指导你如何恢复这些缺失的列,并提供一些额外的优化建议。

问题

在 WooCommerce 8.6.1 更新后,即使启用或禁用高性能订单存储 (HPOS),之前用来添加“配送方式”和“付款方式”列的代码将无法正常工作。这是因为 WooCommerce 引入了新的过滤器和动作来管理订单列表的列和内容。

解决方案

更新代码

以下更新后的代码与 WooCommerce 8.6.1 完全兼容,可以恢复丢失的列:

// 将配送方式和付款方式列添加到订单页面
add_filter( 'woocommerce_admin_order_list_columns', 'add_custom_columns_to_admin_orders', 20);
function add_custom_columns_to_admin_orders( $columns ) {
    $new_columns = array();

    foreach ( $columns as $column_name => $column_info ) {
        $new_columns[ $column_name ] = $column_info;

        if ( 'order_status' === $column_name ) {
            $new_columns['order_shipping'] = __( 'Tarnemeetod', 'my-textdomain' );
            $new_columns['order_payment'] = __( 'Maksemeetod', 'my-textdomain' );
        }
    }
    return $new_columns;
}


add_action( 'woocommerce_admin_order_data_after_order_details', 'custom_columns_content_in_admin_orders' );
function custom_columns_content_in_admin_orders( $order ) {
    echo '<p><strong>' . __( 'Tarnemeetod:', 'my-textdomain' ) . '</strong> ' . $order->get_shipping_method() . '</p>';
    echo '<p><strong>' . __( 'Maksemeetod:', 'my-textdomain' ) . '</strong> ' . $order->get_payment_method_title() . '</p>';
}

// 使支付方式可搜索
add_filter( 'woocommerce_shop_order_search_fields', 'makse_otsing' );
function makse_otsing( $meta_keys ){
    $meta_keys[] = '_payment_method_title';
    return $meta_keys;
}

// 使配送方式可搜索
add_filter( 'woocommerce_shop_order_search_fields', 'tarne_otsing' );
function tarne_otsing( $meta_keys ){
    $meta_keys[] = '_shipping_method';
    return $meta_keys;
}

更新代码的优点

  • 使用新的 woocommerce_admin_order_list_columns 过滤器和 woocommerce_admin_order_data_after_order_details 动作。
  • 改善列显示,以便在订单详细信息之后以易于阅读的格式显示自定义列。
  • 使支付方式和配送方式可搜索,便于对订单进行快速筛选。

其他优化建议

  • 确保使用最新的 WooCommerce 版本,因为更新版本可能包含修复问题和增强功能。
  • 定期检查你的插件和主题的兼容性,并根据需要进行更新。
  • 禁用不必要的插件,因为它们可能会导致冲突或性能问题。
  • 使用缓存插件来提高网站的速度和响应能力。

常见问题解答

问:为什么这些列在 WooCommerce 8.6.1 中消失了?

答:WooCommerce 引入了新的过滤器和动作来管理订单列表,这导致了以前用来添加这些列的代码不再有效。

问:更新后的代码与 HPOS 兼容吗?

答:是的,更新后的代码与 HPOS 兼容,无论 HPOS 是否启用。

问:如何使支付方式和配送方式可搜索?

答:你可以使用 woocommerce_shop_order_search_fields 过滤器将付款方式和配送方式添加到可搜索的元字段中。

问:为什么使用新的过滤器和动作很重要?

答:使用新的过滤器和动作可以确保你的代码与未来的 WooCommerce 版本兼容,并利用新的特性和增强功能。

问:为什么应该优化 WooCommerce?

答:优化 WooCommerce 可以提高网站的性能、速度和整体用户体验。

结论

通过更新代码并遵循本文中提供的其他建议,你可以恢复 WooCommerce 8.6.1 中丢失的管理订单列,并进一步优化你的 WooCommerce 网站。这将使你能够更有效地管理订单,并为客户提供更好的购物体验。