В вашем коде есть ошибки. Чтобы добавить кнопку настраиваемого действия в дополнительный дополнительный столбец в списке заказов администратора, используйте следующее:
// Adding a custom comumn
add_filter( 'manage_edit-shop_order_columns', 'add_example_column' );
function add_example_column($columns) {
$columns['ups'] = __('UPS', 'woocommerce');
return $columns;
}
// The column content by row
add_action( 'manage_shop_order_posts_custom_column' , 'add_example_column_contents', 10, 2 );
function add_example_column_contents( $column, $post_id ) {
if ( 'ups' === $column )
{
$order = wc_get_order( $post_id ); // Get the WC_Order instance Object
// Targetting processing orders only
if ( $order->has_status( 'processing' ) )
{
$slug = 'ups';
$url = '?action=ups&order_id=' . $post_id; // The order Id is required in the URL
// Output the button
echo '<p><a class="button wc-action-button wc-action-button'.$slug.' '.$slug.'" href="'.$url.'" aria-label="'.$slug.'"> </a></p>';
}
}
}
// The CSS styling
add_action( 'admin_head', 'add_custom_action_button_css' );
function add_custom_action_button_css() {
$action_slug = "ups";
echo '<style>.wc-action-button-'.$action_slug.'::after { font-family: woocommerce !important; content: "\e029" !important; }</style>';
}
Но вы не получите функцию всплывающей подсказки, как в столбце действий WooCommerce по умолчанию.
Вам нужно будет обработать ваше пользовательское действие с помощью некоторых дополнительных функций.
Примечания: Хук woocommerce_admin_order_actions
должен использоваться со стандартными действиями пользовательских кнопок woocommerce, поэтому не для пользовательского столбца. Также FontAwesome, похоже, не работает с бэкэндом.
Код входит в функции. php Файл вашей активной дочерней темы (или активной темы). Проверено и работает.