Wordpress - add_filter | apply_fitlers

时间:2016-08-05 14:53:47

标签: php wordpress wordpress-theming

我正在开发一个WooCommerce插件,简而言之就是一个允许店铺经理为每个产品页面定义块“Magento样式”的插件。

实施例: 对于产品X,我希望相关产品块可见,对于产品Y,我只想显示加售块和特色产品块。

我正在尝试定义过滤器,以便主题开发人员可以挂钩一些自定义块。

我有WC_Block_Loader类

在构造函数方法中有这行代码:

   $this->blocks = array()
   $this->blocks = apply_filters('woocommerce_blocks_register', $this->blocks);
   var_dump($this->blocks); //empty

在主题的functions.php中是一段代码:

   function hook_my_custom_wc_blocks ( $blocks ) {
       $blocks['WC_My_Custom_Block'] = get_template_directory().'/includes/blocks/block-my-custom-block.php';
       return $blocks;
   }

   add_filter('woocommerce_blocks_register', 'hook_my_custom_blocks', 10, 1);

我认为问题在于我正在使用'plugins_loaded'动作启动插件,并且在此挂钩之后运行functions.php,但我不确定。

有什么建议吗?谢谢和愉快的节目。

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,只需将plugins_loaded挂钩更改为init挂钩即可。