开发WordPress插件调用get_woocommerce_currency()提示未定义,如何解决?
获取WooCommerce配置货币的正确方法
出现get_woocommerce_currency()未定义的致命错误,核心原因是你的插件代码在WooCommerce插件加载前就执行了,导致无法调用WooCommerce的专属函数。以下是两种可靠的解决方式:
方式一:确保代码在WooCommerce加载后执行
利用WordPress的动作钩子,让代码在WooCommerce初始化完成后再运行,同时增加函数存在性判断避免报错:
// 绑定到woocommerce_init钩子,确保WooCommerce已加载 add_action('woocommerce_init', 'my_retrieve_woocommerce_currency'); function my_retrieve_woocommerce_currency() { if (function_exists('get_woocommerce_currency')) { $currency_code = get_woocommerce_currency(); // 这里添加你对货币代码的处理逻辑 } }
如果需要更早执行,也可以用plugins_loaded钩子并调整优先级(数字越大越晚执行):
add_action('plugins_loaded', 'my_retrieve_currency', 20); function my_retrieve_currency() { // 先检查WooCommerce是否已激活 if (class_exists('WooCommerce')) { $currency_code = get_woocommerce_currency(); // 后续操作 } }
方式二:直接读取WordPress选项
WooCommerce会将货币配置存储在woocommerce_currency这个WordPress选项中,你可以直接通过get_option()获取,无需依赖WooCommerce的函数:
// 直接读取选项,第二个参数是WooCommerce未激活时的默认值 $currency_code = get_option('woocommerce_currency', 'USD');
内容的提问来源于stack exchange,提问作者gzoo
相关产品推荐
相关产品推荐

