如何在WooCommerce后台产品列表新增列显示商品可用配送国家
实现WooCommerce后台产品列表显示可用配送国家
以下是适配ALD插件导入商品的后台列自定义代码,直接添加到主题的functions.php文件或自定义插件中即可:
1. 新增后台产品列表列
// 给产品列表添加可用配送国家列 add_filter('manage_edit-product_columns', 'add_shipping_countries_column'); function add_shipping_countries_column($columns) { // 可调整列的插入位置,这里选择在库存列后添加 $new_columns = []; foreach ($columns as $key => $label) { $new_columns[$key] = $label; if ($key === 'is_in_stock') { $new_columns['shipping_countries'] = '可用配送国家'; } } return $new_columns; }
2. 填充列内容
// 填充可用配送国家列的内容 add_action('manage_product_posts_custom_column', 'populate_shipping_countries_column', 10, 2); function populate_shipping_countries_column($column, $post_id) { if ($column === 'shipping_countries') { // 获取ALD插件存储的配送国家数据(默认字段为_ald_shipping_countries,若不对可查数据库post_meta表确认) $shipping_countries = get_post_meta($post_id, '_ald_shipping_countries', true); if (!empty($shipping_countries) && is_array($shipping_countries)) { $country_names = []; $wc_country_list = WC()->countries->countries; foreach ($shipping_countries as $code) { // 把国家代码转成中文名称,无对应名称时显示原代码 $country_names[] = $wc_country_list[$code] ?? $code; } echo implode(', ', $country_names); } else { echo '无'; } } }
注意事项
- 若ALD插件存储配送国家的字段不是
_ald_shipping_countries,可通过数据库工具查看对应产品的post_meta表,找到存储国家列表的meta_key替换即可。 - 如需调整列的显示位置,可修改
add_shipping_countries_column函数中的is_in_stock为其他列的key(比如price、title)。 - 代码支持简单产品,若需适配可变产品的子产品,可扩展逻辑遍历子产品ID获取对应配送国家数据。
内容的提问来源于stack exchange,提问作者You Cha
相关产品推荐
相关产品推荐

