在WooCommerce的My Account Orders页面中,是否可以始终首先保留一个特定的操作按钮?

我有一个插件,创建一个"跟踪"按钮,一旦订单发货,我希望该按钮始终在列表中的第一位,因为你看到它出现在第二位.

screenshot

以及该曲目按钮的HTML码:

<a href="tools.usps.com/go/…" class="woocommerce-button button ast_track">Track</a>

我try 使用以下jQuery代码,但没有成功:

jQuery(document).ready(function($) {
    $('.woocommerce-MyAccount-navigation .track').prependTo('.woocommerce-MyAccount-navigation');
});

推荐答案

this thread的基础上试试下面的(unstested),先移动"音轨"按钮:

add_filter( 'woocommerce_my_account_my_orders_actions', 'my_account_orders_track_button_first', 100, 2 );
function my_account_orders_track_button_first( $actions, $order ) {
    // Targeting "track" params (button)
    if( is_wc_endpoint_url( 'orders' ) && isset($actions['ast_track']) ) {
        // Save "track" params to a variable
        $action_track = $actions['ast_track']; 

        // Remove "track" params from $actions array
        unset($actions['ast_track']); 

        // Add back "track" params first in the $actions array
        $actions = array_merge(['ast_track' => $action_track], $actions); 
    }
    return $actions;
}

代码位于您的子主题的unctions.php文件中(或在插件中).应该能行得通.

Php相关问答推荐

无法添加ProxyClass__setInitialized()上的忽略

Laravel 9如何过滤$的项目与结果?

使用额外的输入字段自定义WooCommerce单个产品

Woocommerce自定义变体html表仅显示带值的列

使用PHP阅读XML提要

从含有特殊字符的ANSI文本文件中读取数据是在移值,为什么?

在WooCommerce产品中按类型对产品属性术语进行分类以供显示

如何在函数中定位WooCommerce产品循环

有没有可能从composer 过时的输出中隐藏不需要的主要版本?

在PHP 8.2 Gloogle云引擎上加载大型php文件速度缓慢

基于服务器的不同地平线配置

根据发货类别在WooCommerce产品页面中显示快捷代码

表单提交返回空白页

使用用户元数据填写 woocommerce checkout 字段

使用自定义规则进行 Livewire 验证不会显示错误

根据所选付款方式更改 WooCommerce 提交结帐按钮文本

CodeIgniter 4中嵌套过滤器组不起作用

在这个 Laravel 应用中,如何仅显示已批准的 comments 回复?

如何使用相同的变量使函数参数对于数组和字符串都是可选的

laravel 中的 OrderBy json 列