Wordpress教程 2024年09月20日
0 收藏 0 点赞 171 浏览 3574 个字

 

// 添加自定义列到订单列表
add_filter('manage_woocommerce_page_wc-orders_columns', 'add_custom_woocommerce_order_columns', 15);
function add_custom_woocommerce_order_columns($columns) {
    // 添加多个自定义列标题
    $columns['b_site_order_id'] = __('Site Order ID', 'woocommerce');
    $columns['external_uuid'] = __('External UUID', 'woocommerce');
    $columns['selected_redirect_domain'] = __('Redirect Domain', 'woocommerce');
    
    return $columns;
}

// 显示自定义字段值
add_action('manage_woocommerce_page_wc-orders_custom_column', 'display_custom_order_column_values', 10, 2);
function display_custom_order_column_values($column, $order_id) {
    $order = wc_get_order($order_id);

    switch ($column) {
        case 'b_site_order_id':
            $site_order_id = $order->get_meta('b_site_order_id');
            echo empty($site_order_id) ? __('No data', 'woocommerce') : esc_html($site_order_id);
            break;
        case 'external_uuid':
            $external_uuid = $order->get_meta('external_uuid');
            echo empty($external_uuid) ? __('No data', 'woocommerce') : esc_html($external_uuid);
            break;
        case 'selected_redirect_domain':
            $redirect_domain = $order->get_meta('selected_redirect_domain');
            echo empty($redirect_domain) ? __('No data', 'woocommerce') : esc_html($redirect_domain);
            break;
    }
}

 

美化版


add_filter('manage_woocommerce_page_wc-orders_columns', 'add_custom_woocommerce_order_columns', 15);
function add_custom_woocommerce_order_columns($columns) {
    $columns['b_site_order_id'] = __('【Site Order ID】', 'woocommerce');
    $columns['external_uuid'] = __('【External UUID】', 'woocommerce');
    $columns['selected_redirect_domain'] = __('【Redirect Domain】', 'woocommerce');
    
    return $columns;
}
add_action('manage_woocommerce_page_wc-orders_custom_column', 'display_custom_order_column_values', 10, 2);
function display_custom_order_column_values($column, $order_id) {
    $order = wc_get_order($order_id);

    switch ($column) {
        case 'b_site_order_id':
            $site_order_id = $order->get_meta('b_site_order_id');
            echo empty($site_order_id) ? 
                '<mark class="custom-field custom-field-b-site-order-id"><span>' . __('No data', 'woocommerce') . '</span></mark>' : 
                '<mark class="custom-field custom-field-b-site-order-id"><span>' . esc_html($site_order_id) . '</span></mark>';
            break;
        case 'selected_redirect_domain':
            $redirect_domain = $order->get_meta('selected_redirect_domain');
            echo empty($redirect_domain) ? 
                '<mark class="custom-field custom-field-selected-redirect-domain"><span>' . __('No data', 'woocommerce') . '</span></mark>' : 
                '<mark class="custom-field custom-field-selected-redirect-domain"><span>' . esc_html($redirect_domain) . '</span></mark>';
            break;
        case 'external_uuid':
            $external_uuid = $order->get_meta('external_uuid');
            echo empty($external_uuid) ? __('No data', 'woocommerce') : esc_html($external_uuid);
            break;
    }
}
add_action('admin_head', 'custom_admin_css');
function custom_admin_css() {
    ?>
<style>
    .custom-field-b-site-order-id {
        display: inline-flex;
        line-height: 2.5em;
        color: #fff;
        background: #06f;
        border-radius: 4px;
        border-bottom: 1px solid rgba(0, 0, 0, .05);
        margin: -.25em 0;
        cursor: inherit !important;
        white-space: nowrap;
        max-width: 100%;
    }
    .custom-field-b-site-order-id span {
        margin: 0 1em;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .custom-field-selected-redirect-domain {
        display: inline-flex;
        line-height: 2.5em;
        color: #fff;
        background: #ff3045;
        border-radius: 4px;
        border-bottom: 1px solid rgba(0, 0, 0, .05);
        margin: -.25em 0;
        cursor: inherit !important;
        white-space: nowrap;
        max-width: 100%;
        margin: 0 1em;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    .custom-field-selected-redirect-domain span {
        margin: 0 1em;
        overflow: hidden;
        text-overflow: ellipsis;
    }
</style>

    <?php
}

 

除了上面的方法,有些朋友在开发的时候,可能还使用过 get_post, get_post_meta 这样的方法来获取订单数据,在WooCommerce 使用基于文章类型的订单数据结构来存储数据时,这当然是没问题的。但是如果 WooCommerce 使用的HPOS高性能订单数据结构来存储数据时,使用基于文章类型的订单获取方法可能就获取不到数据了。所以建议大家在以后的开发过程中,尽量使用 WC_Order 类来获取数据,不管 WooCommerce 的数据结构怎么变化,这个类的方法时不会轻易变更的,这样就能保证我们主题和插件的向前兼容性, 减少维护工作。

微信扫一扫

支付宝扫一扫

版权: 转载请注明出处:https://www.mizhanw.com/blog/4949.html

相关推荐
WordPress去除/禁止后台侧栏插件-主题-版本更新提示
今天使用了张戈修改的nginx-help插件修改版,官方版并无自动重启功能,因此不能更新。但是这WordPress后台一直有更新提示,这可真…
日期:2024-12-30 点赞:0 阅读:44
WordPress网站js防扒代码-禁止右键/F12/调试自动关闭窗口
网站防扒老生常谈了,今天老白博客@老白也给大家分享一下从网上看到的“WordPress网站防扒代码/禁止F12调试教程-以7b2主题为例” …
日期:2024-12-30 点赞:0 阅读:59
WordPress优化加速之导航菜单栏缓存Menu Cache
今天老白博客@老白给大家分享又一个WordPress优化加速教程:“导航菜单栏缓存WordPress插件Menu Cache”。我们都知道数…
日期:2024-12-30 点赞:0 阅读:45
2024基于网站性能测试的WordPress优化指南
老白博客WordPress优化高级教程:在如今5G遍地走,千兆多如狗的高速网络时代,如果你访问网站,还出现转圈圈的情况,那么你十有八九是要关…
日期:2024-12-30 点赞:0 阅读:50
WP网站用户行为监测回放插件nicen-replay
在数字营销的世界里,了解用户行为是提升用户体验和转化率的关键。老白推荐一款炫酷的WordPress插件:nicen-replay 。它能够让…
日期:2024-12-30 点赞:0 阅读:48
2024新WordPress缓存插件atec Cache APCu
WordPress插件atec Cache APCu 是一款2024年才投入使用的的高效缓存插件,与其他内存缓存选项(如 Redis 和 M…
日期:2024-12-30 点赞:0 阅读:65
发表评论
暂无评论

还没有评论呢,快来抢沙发~