如何查找并移除WooCommerce后台产品页的自定义标签?
移除WooCommerce后台产品页自定义标签的方法
如果默认的unset($tabs['key'])方法无效,说明这些标签不是通过标准的woocommerce_product_data_tabs过滤器添加的,试试以下几种方案:
一、通过浏览器开发者工具定位标签,用CSS隐藏
- 打开产品编辑后台,右键点击要移除的标签,选择「检查」
- 找到标签对应的
<li>元素,记下它的ID(比如li#wc_crm_product_tab),同时找到对应面板的ID(通常和标签ID对应,比如#wc_crm_product_panel) - 添加以下代码到主题的
functions.php文件,通过后台样式隐藏这些元素:
add_action('admin_enqueue_scripts', function() { global $pagenow; // 仅在产品编辑页生效 if ($pagenow === 'post.php' && get_post_type() === 'product') { // 替换成你找到的标签和面板ID $custom_css = 'li#wc_crm_product_tab, #wc_crm_product_panel { display: none !important; }'; wp_add_inline_style('woocommerce_admin_styles', $custom_css); } });
二、查找插件注册标签的钩子,用PHP移除
- 对于WooCommerce Subscription这类插件,它们可能用了自定义钩子或直接添加标签,你可以:
- 用代码编辑器搜索插件目录里的
add_action或add_filter,关键词比如woocommerce_product_data_tabs、woocommerce_product_data_panels - 找到插件注册标签的代码,比如类似:
add_filter('woocommerce_product_data_tabs', 'wc_subscriptions_add_product_tab', 10);
- 用代码编辑器搜索插件目录里的
- 然后用
remove_filter移除该回调,注意优先级要和插件注册时一致:add_action('init', function() { remove_filter('woocommerce_product_data_tabs', 'wc_subscriptions_add_product_tab', 10); });
三、输出所有钩子回调,定位注册函数
如果找不到插件的注册代码,可以添加以下代码到functions.php,查看所有挂在产品标签相关钩子上的回调:
add_action('woocommerce_product_data_tabs', function($tabs) { global $wp_filter; // 输出woocommerce_product_data_tabs钩子的所有回调 var_dump($wp_filter['woocommerce_product_data_tabs']); // 同时检查woocommerce_product_data_panels钩子 var_dump($wp_filter['woocommerce_product_data_panels']); return $tabs; }, 9999);
刷新产品编辑页后,查看页面输出的内容,找到对应插件的回调函数名,再用remove_action或remove_filter移除。
内容的提问来源于stack exchange,提问作者Jonas
相关产品推荐
相关产品推荐

