在 WooCommerce 管理员订单列表中添加自定义操作按钮
Add a custom action button in WooCommerce admin order list
我已按照 this instructions 为我的 WooCommerce 订单添加自定义订单状态。
我找不到创建自定义操作按钮的方法,该按钮可从管理订单列表页面将订单状态更改为我的自定义状态,如下图所示:
我希望为具有 "Processing" 状态的订单显示此自定义操作按钮。
我在 WooCommerce 文档中找不到任何答案。
是否有应用这些按钮的钩子?
如何将它添加到 function.php
?
谢谢
要恢复,您已经创建了一个自定义订单状态 'wc-parcial'(使用问题中提供的说明代码),您需要将相关操作按钮添加到订单管理列表。
For WooCommerce version 3.3+ check the update
您需要使用挂接到 woocommerce_admin_order_actions
过滤器挂钩的自定义函数
// Add your custom order status action button (for orders with "processing" status)
add_filter( 'woocommerce_admin_order_actions', 'add_custom_order_status_actions_button', 100, 2 );
function add_custom_order_status_actions_button( $actions, $order ) {
// Display the button for all orders that have a 'processing' status
if ( $order->has_status( array( 'processing' ) ) ) {
// Get Order ID (compatibility all WC versions)
$order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
// Set the action button
$actions['parcial'] = array(
'url' => wp_nonce_url( admin_url( 'admin-ajax.php?action=woocommerce_mark_order_status&status=parcial&order_id=' . $order_id ), 'woocommerce-mark-order-status' ),
'name' => __( 'Envio parcial', 'woocommerce' ),
'action' => "view parcial", // keep "view" class for a clean button CSS
);
}
return $actions;
}
// Set Here the WooCommerce icon for your action button
add_action( 'admin_head', 'add_custom_order_status_actions_button_css' );
function add_custom_order_status_actions_button_css() {
echo '<style>.view.parcial::after { font-family: woocommerce; content: "\e005" !important; }</style>';
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
此代码已经过测试并且可以工作。你会得到:
Updated version for Woocommerce 3.3+
要恢复,您已经创建了自定义订单状态 'wc-parcial'(使用问题中提供的说明代码),您需要将相关操作按钮添加到订单管理列表。
新代码:
// Add your custom order status action button (for orders with "processing" status)
add_filter( 'woocommerce_admin_order_actions', 'add_custom_order_status_actions_button', 100, 2 );
function add_custom_order_status_actions_button( $actions, $order ) {
// Display the button for all orders that have a 'processing' status
if ( $order->has_status( array( 'processing' ) ) ) {
// The key slug defined for your action button
$action_slug = 'parcial';
// Set the action button
$actions[$action_slug] = array(
'url' => wp_nonce_url( admin_url( 'admin-ajax.php?action=woocommerce_mark_order_status&status=parcial&order_id=' . $order->get_id() ), 'woocommerce-mark-order-status' ),
'name' => __( 'Envio parcial', 'woocommerce' ),
'action' => $action_slug,
);
}
return $actions;
}
// Set Here the WooCommerce icon for your action button
add_action( 'admin_head', 'add_custom_order_status_actions_button_css' );
function add_custom_order_status_actions_button_css() {
$action_slug = "parcial"; // The key slug defined for your action button
echo '<style>.wc-action-button-'.$action_slug.'::after { font-family: woocommerce !important; content: "\e029" !important; }</style>';
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。
已测试并有效
我已按照 this instructions 为我的 WooCommerce 订单添加自定义订单状态。
我找不到创建自定义操作按钮的方法,该按钮可从管理订单列表页面将订单状态更改为我的自定义状态,如下图所示:
我希望为具有 "Processing" 状态的订单显示此自定义操作按钮。
我在 WooCommerce 文档中找不到任何答案。
是否有应用这些按钮的钩子?
如何将它添加到 function.php
?
谢谢
要恢复,您已经创建了一个自定义订单状态 'wc-parcial'(使用问题中提供的说明代码),您需要将相关操作按钮添加到订单管理列表。
For WooCommerce version 3.3+ check the update
您需要使用挂接到 woocommerce_admin_order_actions
过滤器挂钩的自定义函数
// Add your custom order status action button (for orders with "processing" status)
add_filter( 'woocommerce_admin_order_actions', 'add_custom_order_status_actions_button', 100, 2 );
function add_custom_order_status_actions_button( $actions, $order ) {
// Display the button for all orders that have a 'processing' status
if ( $order->has_status( array( 'processing' ) ) ) {
// Get Order ID (compatibility all WC versions)
$order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id;
// Set the action button
$actions['parcial'] = array(
'url' => wp_nonce_url( admin_url( 'admin-ajax.php?action=woocommerce_mark_order_status&status=parcial&order_id=' . $order_id ), 'woocommerce-mark-order-status' ),
'name' => __( 'Envio parcial', 'woocommerce' ),
'action' => "view parcial", // keep "view" class for a clean button CSS
);
}
return $actions;
}
// Set Here the WooCommerce icon for your action button
add_action( 'admin_head', 'add_custom_order_status_actions_button_css' );
function add_custom_order_status_actions_button_css() {
echo '<style>.view.parcial::after { font-family: woocommerce; content: "\e005" !important; }</style>';
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
此代码已经过测试并且可以工作。你会得到:
Updated version for Woocommerce 3.3+
要恢复,您已经创建了自定义订单状态 'wc-parcial'(使用问题中提供的说明代码),您需要将相关操作按钮添加到订单管理列表。
新代码:
// Add your custom order status action button (for orders with "processing" status)
add_filter( 'woocommerce_admin_order_actions', 'add_custom_order_status_actions_button', 100, 2 );
function add_custom_order_status_actions_button( $actions, $order ) {
// Display the button for all orders that have a 'processing' status
if ( $order->has_status( array( 'processing' ) ) ) {
// The key slug defined for your action button
$action_slug = 'parcial';
// Set the action button
$actions[$action_slug] = array(
'url' => wp_nonce_url( admin_url( 'admin-ajax.php?action=woocommerce_mark_order_status&status=parcial&order_id=' . $order->get_id() ), 'woocommerce-mark-order-status' ),
'name' => __( 'Envio parcial', 'woocommerce' ),
'action' => $action_slug,
);
}
return $actions;
}
// Set Here the WooCommerce icon for your action button
add_action( 'admin_head', 'add_custom_order_status_actions_button_css' );
function add_custom_order_status_actions_button_css() {
$action_slug = "parcial"; // The key slug defined for your action button
echo '<style>.wc-action-button-'.$action_slug.'::after { font-family: woocommerce !important; content: "\e029" !important; }</style>';
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。
已测试并有效