Reputation: 71
Is there any way to get the img src in Woocommerce admin order list: That is the code of my PDF button, I just want to get the src image, I have two buttons 'Invoice' and 'Packing Slip', I want every button to get an image
// 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
}
}
Upvotes: 1
Views: 1462
Reputation: 253784
Try the following (based on your question code)
// 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>';
}
Code goes in function.php file of your active child theme (or active theme). Tested and works, it should work for you too.
Woocommerce and Wordpress available icons: (visual + icon code):
Similar related answers:
Upvotes: 1