You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WooCommerce后台订单列表自定义操作按钮中添加图片并获取图片src

搞定WooCommerce订单列表按钮加图片的方法

嘿,我来帮你实现给订单列表里的发票、装箱单按钮加图片的需求,顺便给你讲清楚怎么获取图片的src路径~

一、核心代码修改思路

WooCommerce的woocommerce_admin_order_actions过滤器允许我们自定义订单操作按钮,只需要把按钮的name字段从纯文字改成包含<img>标签的HTML即可。同时要注意用esc_url()转义图片路径,避免安全问题。

二、图片src的几种获取方式

1. 主题/子主题目录下的图片(推荐)

把图片放到主题文件夹的子目录里(比如assets/icons/),用WordPress内置函数获取主题URL,这样即使主题更新也不会丢失路径:

// 示例:获取主题目录下assets/icons/invoice.png的URL
$invoice_icon_src = get_stylesheet_directory_uri() . '/assets/icons/invoice.png';

操作步骤:

  • 在你的主题文件夹里新建assets/icons目录
  • 把发票、装箱单的图标上传到这个目录
  • 用上面的代码拼接路径

2. 媒体库上传的图片

如果你的图标是上传到WordPress媒体库的,可以通过附件ID获取图片URL:

// 替换成你媒体库中图片的附件ID
$invoice_attachment_id = 123;
// 获取图片的缩略图URL(第二个参数可以改尺寸,比如'full'是原图)
$invoice_icon_src = wp_get_attachment_image_src( $invoice_attachment_id, 'thumbnail' )[0];

怎么看附件ID?

  • 进入媒体库编辑图片,浏览器地址栏里的post=XXX数字就是附件ID;或者安装「Show IDs」插件快速查看。

3. 绝对URL(不推荐)

如果用CDN或外部图片,直接写完整URL就行,但要注意图片可能失效:

$invoice_icon_src = 'https://your-domain.com/icons/invoice.png';

三、完整代码示例

把下面的代码添加到主题的functions.php文件,或者用「Code Snippets」插件添加(避免主题更新丢失代码):

add_filter( 'woocommerce_admin_order_actions', 'add_custom_print_actions_buttons', 100, 2 );
function add_custom_print_actions_buttons( $actions, $order ) {
    $opts = get_option('xc_woo_cloud_print_options', array());

    // --- 发票按钮 ---
    // 这里用主题目录图片的方式,你可以换成媒体库或绝对URL的写法
    $invoice_icon_src = get_stylesheet_directory_uri() . '/assets/icons/invoice.png';
    $actions['print_invoice'] = array(
        'url'       => wp_nonce_url( admin_url( 'admin.php?page=xc_woo_cloud_print&action=print_invoice&order_id=' . $order->get_id() ), 'xc_woo_cloud_print_invoice' ),
        'name'      => '<img src="' . esc_url( $invoice_icon_src ) . '" alt="发票" /> 发票',
        'action'    => 'view print-invoice', // 自定义类名,方便加样式
    );

    // --- 装箱单按钮 ---
    $packing_slip_icon_src = get_stylesheet_directory_uri() . '/assets/icons/packing-slip.png';
    $actions['print_packing_slip'] = array(
        'url'       => wp_nonce_url( admin_url( 'admin.php?page=xc_woo_cloud_print&action=print_packing_slip&order_id=' . $order->get_id() ), 'xc_woo_cloud_print_packing_slip' ),
        'name'      => '<img src="' . esc_url( $packing_slip_icon_src ) . '" alt="装箱单" /> 装箱单',
        'action'    => 'view print-packing-slip',
    );

    return $actions;
}

四、优化按钮样式(可选)

如果觉得图片和文字排版不协调,可以在「外观 > 自定义 > 额外CSS」里添加以下样式:

/* 调整图标大小和对齐方式 */
.wp-list-table .order_actions .print-invoice img,
.wp-list-table .order_actions .print-packing-slip img {
    width: 18px;
    height: 18px;
    vertical-align: middle;
    margin-right: 5px;
}

/* 要是想只显示图标隐藏文字,取消下面的注释 */
/*
.wp-list-table .order_actions .print-invoice span,
.wp-list-table .order_actions .print-packing-slip span {
    display: none;
}
*/

内容的提问来源于stack exchange,提问作者Simo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:34:41