You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

开发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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 23:50:28