当前位置: 首页 > 知识库问答 >
问题:

在WooCommerce管理订单列表中添加自定义操作按钮

轩辕鸿
2023-03-14

我已按照此说明为我的WooCommerce订单添加自定义订单状态。

我找不到创建自定义操作按钮的方法,该按钮可将订单状态从管理订单列表页面更改为我的自定义状态,如下图所示:

我想为具有“处理”状态的订单显示此自定义操作按钮。

我在WooCommerce留档中找不到任何答案。

有没有钩子可以套用这些按钮?
如何将其添加到function.php中?

非常感谢。

共有2个答案

锺离正祥
2023-03-14

Woocommerce 3.3的更新版本

要恢复,您已经创建了自定义订单状态wc-parical(问题中提供了说明代码),您需要将相关操作按钮添加到订单管理列表中。

新守则:

// 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>';
}

代码进入函数。活动子主题(或活动主题)的php文件

测试和工作

王景山
2023-03-14

若要继续,您已经创建了自定义订单状态“wc parcial”(问题中提供了说明代码),您需要将相关操作按钮添加到订单管理列表中。

对于WooCommerce 3.3版本,请查看下面答案中的更新

您需要使用在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活动子主题(或主题)的文件或任何插件文件中。

此代码经过测试并正常工作。你会得到:

 类似资料:
  • 我想在页面中添加一个自定义按钮,管理员可以在其中手动创建新订单(管理员订单页面)。 管理员- 在我添加产品和点击编辑按钮后,我可以在添加元按钮附近显示自定义按钮吗?我找不到可以使用的钩子。 我已经添加了上面的代码。我得到了结果,但按钮显示后不久,我添加的产品。我只希望按钮显示时,我点击编辑按钮。 #更新 当我添加以下代码时,它起了作用。这条路对吗?由于设置了同一字段中的按钮

  • 使用以下代码,我可以在WooCommerce产品上获得一个自定义字段,但是如何在订单、结帐和管理订单(后端)上显示它呢? 这是我在每个产品上的自定义字段 这是我的管理订单(后端)详细信息。我尝试显示我在每个产品帖子中输入的正确元数据。 如何在管理订单中显示我在自定义字段中输入的值?我也希望有人能帮助我显示在订单和结帐页面的元。。。或者引导我走向正确的方向。我意识到,为了在管理订单中显示它,我必须确

  • 在使用插件管理自定义订单字段的WooCommerce中,我在WooCommerce管理订单列表中添加了一个自定义字段“回扣状态”,其中有3个值“无回扣”、“未付款”和“已付款”。 我还将其显示在查看订单屏幕上,如下面的屏幕截图所示: 现在我想批量更新所选订单的折扣状态,就像wooCommerce允许批量更改订单状态一样。 基于“在Woocommerce中处理管理员订单列表上的自定义批量操作”回答线

  • 在新的woo orders屏幕上,旧的彩色状态图标现在消失了,取而代之的是一个带有彩色背景的大状态按钮。 处理为绿色,完成为蓝色,取消为灰色等。 我在woocommerce orders中有一个自定义订单状态,名为:in progress。自定义订单状态似乎也只给出一个默认的灰色背景。我想为我的自定义订单状态分配一个颜色背景。我曾试图找到一个代码片段,以便这样做,但一直没有运气。

  • 但这给了我添加列中的“未定义变量”错误。 如果我只将放入函数中,它将“rechnung beilegen”输出到my_column_id_2中的每一行。像这样: 因此,问题是:如何根据中的选择将输出转换为?

  • 我目前正在成功地向我的WooCommerce产品页面添加一个字段,该字段显示以下值: 在推车(前端), 在结账页面(前端), 在订单页(前端), 并在管理个人订单页面(后端)。 问题是:它在管理订单的“自定义字段”元框中没有显示为自定义字段,其值在其中,而只是在订单页面中显示为文本。 这是我的工作代码: 我认为这是代码的最后一点需要更改。它当前显示订单项下的文本,因此我可能需要调整? 我什么都试过