如何从主题初始化 public 函数

How to init public function from theme

我在 WooCommerce 网站上使用 Astra 主题。产品内置快速查看功能。我只想为主题不可能的特定类别激活它。我不想用 css 隐藏它,所以我在这个文件中找到了代码的来源:https://developers.wpastra.com/astra-pro/reference/classes/astra_ext_woocommerce_markup/

我试着用这个: add_action( 'woocommerce_shop_loop', array( $this, 'init_quick_view' ), 999 );

但刚得到一个错误:致命错误:未捕获错误:当不在对象上下文中时使用 $this ..."

任何人都可以帮助或指导我如何在我自己的 functions.php 文件中初始化函数“init_quick_view”,我可以在其中为何时 运行 设置自己的条件?

谢谢

怎么样

remove_action( 'woocommerce_shop_loop', 'init_quick_view', 999 );
add_action( 'woocommerce_shop_loop', 'custom_init_quick_view', 999 );

init_quick_view 函数复制到您的 custom_init_quick_view 中并添加您的条件。另一种方法可能是

remove_action( 'woocommerce_shop_loop', 'init_quick_view', 999 );
if(is_product_category('catslug') {
   add_action( 'woocommerce_shop_loop', 'init_quick_view', 999 );
}

我还没有测试过。如果 none 这些作品有问题,请尝试安装主题并测试