返回

WooCommerce 下载列表自定义:重排和隐藏列

php

## 自定义 WooCommerce 下载列表中的列

### 问题

电子商务平台 WooCommerce 提供的「下载」部分中列出数字产品的下载链接,但列的顺序和可见性并不总是最优。用户可能希望自定义这些列,以更好地满足他们的需求。

### 解决方案

WooCommerce 提供过滤器,允许用户修改默认行为。通过使用这些过滤器,我们可以自定义下载列表中的列,包括:

  • 删除不必要的列
  • 重新排列列的顺序
  • 更改列的标题

### 实施

在 functions.php 文件中添加以下代码:

add_filter( 'woocommerce_account_downloads_columns', 'custom_downloads_columns', 10, 1 ); // Orders and account
add_filter( 'woocommerce_email_downloads_columns', 'custom_downloads_columns', 10, 1 ); // Email notifications
function custom_downloads_columns( $columns ) {
    if ( isset( $columns['product_name'] ) ) {
        unset( $columns['product_name'] );
    }
    $new_columns = [
        'download-file' => __( 'Download', 'woocommerce' ),
        'downloads-remaining' => __( 'Downloads Remaining', 'woocommerce' ),
        'download-expiry' => __( 'Expires', 'woocommerce' ),
    ];
    return $new_columns;
}

### 结果

应用此代码后,会产生以下更改:

  • 「产品名称」列将被删除。
  • 「下载」列将移至第一列。
  • 「剩余下载次数」列将移至第二列。
  • 「过期时间」列将移至第三列。

### 提示

  • 确保 WooCommerce 版本是最新的。
  • 检查代码是否已添加到正确的 functions.php 文件中。
  • 尝试使用不同的过滤器来自定义其他列。

### 常见问题解答

  • 我无法看到更改?

    • 检查语法错误。
    • 确保代码已添加到主题的 functions.php 文件中。
  • 我可以自定义其他列吗?

    • 是的,使用相应的过滤器。请参阅 WooCommerce 文档了解更多信息。
  • 我的下载链接似乎已损坏?

    • 验证你是否有足够的下载权限。
    • 检查文件是否已从服务器中删除。
  • 我可以看到其他人的下载链接吗?

    • 仅在具有下载权限时才能看到下载链接。
  • 我可以更改列的标题吗?

    • 是的,在过滤器回调函数中使用 __( 'New Title', 'woocommerce' ) 更改列标题。