为 WooCommerce 中的特定订单状态启用 "cancel" 订单操作按钮

Enable "cancel" order action button for specific order statuses in WooCommerce

在 Woocommerce 我的帐户订单中,我使用以下代码检查客户订单是否处于 "processing" 或 "shipped" 状态,如果是,则显示取消订单的按钮:

    if ($order_status == 'processing' || $order_status == 'shipped' ){
    echo '<a href="click=1" class="woocommerce-button button return">Return Order</a>';
        $order->update_status('cancelled');
}

使用我的代码,订单会在状态为 "processing" 或 "shipped" 时自动更新为取消状态,而我无法让按钮工作。我想在单击按钮触发 update_status 时实现这一点。 我想让它像这样出现在查看订单页面中 目前无法取消订单 我能怎么做?不使用 Javascript?

欢迎任何帮助。

以下代码将在我的帐户订单列表中启用 Woocommerce "cancel" 阳离子按钮,也适用于 processingshipped 订单状态(默认 Woocommerce 状态在这里 pendingfailed

add_filter( 'woocommerce_valid_order_statuses_for_cancel', 'custom_valid_order_statuses_for_cancel', 10, 1 );
function custom_valid_order_statuses_for_cancel( $statuses ){

    // Set HERE the order statuses where you want the cancel button to appear
    return array_merge( $statuses, array('processing', 'shipped'));
}

代码进入您的活动子主题(或活动主题)的 function.php 文件。已测试并有效。