有条件地从 WooCommerce 我的帐户订单中删除取消按钮

Posted

技术标签:

【中文标题】有条件地从 WooCommerce 我的帐户订单中删除取消按钮【英文标题】:Remove cancel button from WooCommerce My account Orders conditionally 【发布时间】:2019-10-04 07:31:29 【问题描述】:

当“付款方式标题”为“Npay”时,我想确保取消按钮在我的帐户中不可见>我的订单。

“Npay”是一个外部支付网关,不适用于商业。因此,取消付款只能在外部进行。

add_filter('woocommerce_my_account_my_orders_actions', 'remove_my_cancel_button', 10, 2);
function remove_my_cancel_button($actions, $order)
    if ( $payment_method->has_title( 'Npay' ) ) 
        unset($actions['cancel']);
        return $actions;
    

【问题讨论】:

【参考方案1】:

要从“我的帐户订单”中删除取消按钮,我们使用以下方法:

add_filter('woocommerce_my_account_my_orders_actions', 'remove_myaccount_orders_cancel_button', 10, 2);
function remove_myaccount_orders_cancel_button( $actions, $order )
    unset($actions['cancel']);

    return $actions;

但是要从我的帐户订单中删除取消按钮根据付款标题,您将使用WC_Order 方法get_payment_method_title() 喜欢:

add_filter('woocommerce_my_account_my_orders_actions', 'remove_myaccount_orders_cancel_button', 10, 2);
function remove_myaccount_orders_cancel_button( $actions, $order )
    if ( $order->get_payment_method_title() === 'Npay' ) 
        unset($actions['cancel']);
    
    return $actions;

代码在您的活动子主题(或活动主题)的functions.php 文件中。经过测试并且可以工作。

主变量参数$actions需要在IF语句之外的末尾返回

【讨论】:

以上是关于有条件地从 WooCommerce 我的帐户订单中删除取消按钮的主要内容,如果未能解决你的问题,请参考以下文章

在 WooCommerce 我的帐户订单列表上显示产品缩略图

仅在商品属于特定类别时显示 WooCommerce 我的帐户订单

在 WooCommerce 上添加支付订单按钮我的帐户查看订单待处理订单

Woocommerce 我的帐户页面为新客户运行了一个额外的循环

我的帐户模板中的 Woocommerce 当前端点页面标题

如何获取 woocommerce 订单的订单 ID 以在 functions.php 中的函数中使用?