管理员页面中的Woocommerce产品类别分类法

纳瓦罗

我正在使用WooCommerce为WordPress编写插件。我需要在插件的管理页面获得WooCommerce产品类别(分类'product_cat'列表(请注意“管理页面”上的强调)。但是,在通过分类法调用和进行过滤之后,会导致错误(我简化了代码。子菜单类位于其他地方,据我所知它不会干扰):get_categories()get_terms()

add_action( 'init', 'myplugin_admin_settings' );
function myplugin_admin_settings() {
    $plugin = new Submenu( new MyPlugin_Admin_Page('myplugin_options') );
    $plugin->init();
}
class MyPlugin_Admin_Page {
    public function __construct($option_name) {
        $args = array(
            'taxonomy'     => 'product_cat',
            'hide_empty'   => false
        );
        var_export(get_categories( $args ));  // Prints 'error'
        var_export(get_terms( $args ));       // Prints 'error'
        var_export(get_terms());              // Prints the whole list of terms including those belonging to 'product_cat' taxonomy
    }
}

打印的错误是:

WP_Error::__set_state(array(   'errors' =>   array (    'invalid_taxonomy' =>     array (      0 => 'Invalid taxonomy.',    ),  ),   'error_data' =>   array (  ),))array (  '' => NULL,)

这表明分类法不存在。而且的确,如果我打电话taxonomy_exists('product_cat')false但是,打印的整个术语列表包括属于的术语'product_cat',如果分类法不存在,这似乎是不可能的。那使我丧命。举个例子:

  43 =>
  WP_Term::__set_state(array(
 'term_id' => 56,
 'name' => 'Accesorios',
 'slug' => 'accesorios',
 'term_group' => 0,
 'term_taxonomy_id' => 56,
 'taxonomy' => 'product_cat',
 'description' => '',
 'parent' => 0,
 'count' => 1,
 'filter' => 'raw',
  )),

这些调用是在init挂钩中完成的,因此它们应返回产品类别。

任何人都可以了解正在发生的事情吗?还有其他方法可以在管理页面中获得产品类别吗?

谢谢。

编辑:我也尝试了钩子plugins_loadedwoocommerce_init

纳瓦罗

好吧,我不知道真正发生了什么,但是现在它正在使用init钩子工作我以前尝试过,但是没有,不确定为什么。现在,我只做了2个测试:使用functioncurrent_filter()检查函数本身是否已正确钩住;并连接到init包含对的调用的函数get_terms($args)然后我注意到它正在工作,并且撤消了更改,一切都在工作。幽灵失败。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

WordPress是非常慢的6级层次分类法(50.000 woocommerce产品类别)

Woocommerce页面产品类别页面的条件标签

在Woocommerce产品类别页面中更改特定的产品按钮文本

限制woocommerce产品类别页面中显示的产品数量

在Woocommerce单一产品页面中获取产品类别名称和描述

从Woocommerce中的子产品类别ID获取父产品类别ID

在WooCommerce结帐页面上显示产品类别

从WooCommerce中的“相关产品”中排除产品类别

在Woocommerce中检查产品类别的产品

从商店页面woocommerce中删除产品类别标题

CPT 的自定义分类法未在管理员中显示标签

从WooCommerce的订单项中获取产品类别ID

在Woocommerce中根据产品类别更改货币符号

在Woocommerce中基于产品类别隐藏价格

获取WooCommerce中的所有产品类别

如何从产品类别页面中删除价格?

更改WooCommerce产品类别标题?

Woocommerce:产品类别小部件

woocommerce获取产品类别ID

Woocommerce的分层产品类别插件

Woocommerce自定义分类法的产品存档页面

如何在管理单个产品编辑页面中获取产品类别自定义元字段的值?

在Woocommerce单一产品页面中显示自定义分类法

使用分类字段 (ACF) 获取产品类别 (Woocommerce) 以过滤循环

在Woocommerce单一产品页面上排除特定的产品类别

在特定的Woocommerce产品类别档案页面上显示产品属性

在Woocommerce中显示类别产品之后移动产品类别描述

从显示类别为Woocommerce的子类别的产品类别中删除边栏

从 WooCommerce 产品类别小部件中删除父类别和子类别