将 img 添加到 Woocommerce 管理订单列表中的自定义操作按钮

Add img to custom action buttons in admin order list for Woocommerce

有没有办法在 Woocommerce 管理订单列表中获取 img src: 那是我的 PDF 按钮的代码,我只想获取 src 图像,我有两个按钮 'Invoice' 和 'Packing Slip',我希望每个按钮都获取图像

// Add custom action buttons in woocommerce order list
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());

    //if (isset($opts['printer']) && $opts['printer'] != "") {
        $domain = 'woocommerce-pdf-invoices-packing-slips';

        $slugs_label_names = array(
            'invoice'       => __('Invoice', $domain ),
            'packing-slip'  => __('Packing Slip', $domain )
        );

        // Set the action button
        foreach ( $slugs_label_names as $slug => $label_name ) {
            $actions[$slug] = array(
                'url'       => wp_nonce_url( admin_url( "admin-ajax.php?action=xc_woo_printer_job&document_type={$slug}&order_id=" . $order->get_id()), 'xc_woo_printer_job'),
                'alt' => esc_attr("Print " . $label_name),
                'title' => "Print " . $label_name
                'img' =>

            );
        }
    //}
 $actions = apply_filters('xc_woo_printer_meta_box_actions', $actions, $post_id);

    foreach ($actions as $document_type => $data) {
            ?>
            <a href="<?php echo $data['url']; ?>" class="button tips xc_ajax_button <?php echo $document_type; ?>" target="_blank" alt="<?php echo $data['alt']; ?>" data-tip="<?php echo $data['alt']; ?>">
                    <img src="<?php echo $data['img']; ?>" alt="<?php echo $data['alt']; ?>" width="16">
            </a>
            <?php
        }
}

尝试以下操作(根据您的问题代码)

// Add your custom action buttons
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());

    if (isset($opts['printer']) && $opts['printer'] != "") {
        $domain = 'woocommerce-pdf-invoices-packing-slips';

        $slugs_label_names = array(
            'invoice'       => __('Invoice', $domain ),
            'packing-slip'  => __('Packing Slip', $domain )
        );

        // Set the action button
        foreach ( $slugs_label_names as $slug => $label_name ) {
            $actions[$slug] = array(
                'url'       => wp_nonce_url( admin_url( "admin-ajax.php?action=xc_woo_printer_job&document_type={$slug}&order_id=" . $order->get_id()), 'xc_woo_printer_job'),
                'name'      => $label_name,
                'action'    => $slug,
            );
        }
    }

    return $actions;
}

// Set Here the WooCommerce icon for your action button
add_action( 'admin_head', 'add_custom_print_actions_buttons_css' );
function add_custom_print_actions_buttons_css() {
    $slug_icons = array(
        'invoice'       => '\f497', // '\e02b',
        'packing-slip'  => '\f491', // '\e028',
    );
    // Added Woocommerce compatibility version
    $class  = version_compare( WC_VERSION, '3.3', '<' ) ? '.view.' : '.wc-action-button-';

    echo '<style>';

    foreach ( $slug_icons as $slug => $icon_code )
        echo $class.$slug.'::after { font-family: dashicons !important; content: "'.$icon_code.'" !important; font-size:1.4em !important; margin-top: -4px !important; }';

    echo '</style>';
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。经过测试并有效,它应该也适合您。


Woocommerce 和 Wordpress 可用图标(视觉 + 图标代码)


类似的相关答案: