WC()->;cart和functions.php
我在将此代码添加到functions.php时遇到此错误 致命错误:对非对象调用成员函数calculate_totals() 这是生成错误的代码WC()->;cart和functions.php,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我在将此代码添加到functions.php时遇到此错误 致命错误:对非对象调用成员函数calculate_totals() 这是生成错误的代码 WC()->cart->calculate_totals(); WC()->cart->calculate_shipping(); $packages = WC()->shipping->get_packages(); 但是,当我将此代码放入header.php&footer.php中时,没有错误,并且返回了$pa
WC()->cart->calculate_totals();
WC()->cart->calculate_shipping();
$packages = WC()->shipping->get_packages();
但是,当我将此代码放入header.php&footer.php中时,没有错误,并且返回了$packages
数组
如何解决这个问题,我需要functions.php中的代码?您只需使用
init
hook-infunctions.php
:
add_action( 'init', 'get_packages_custom' );
function get_packages_custom() {
WC()->cart->calculate_totals();
WC()->cart->calculate_shipping();
$packages = WC()->shipping->get_packages();
}
在functions.php中,如何添加代码?使用适当的钩子或创建函数,否则它将在调用woocommerce插件之前运行。我已经读到插件是在functions.php之前加载的?是的,但是如果您只是在其中插入代码而不使用任何钩子,那么它将无法工作。您可以使用
init
hook实现此目的。好的,谢谢您的帮助。我将此代码连接到一个函数,该函数在add_action('wp_ajax_refresh_checkout_page','refresh_checkout_page')中使用;函数refresh\u checkout\u page(){}
也不起作用,为什么呢?我复制并粘贴了这个,还是同样的错误?有什么想法吗?嗯,试试这个:global$woocommerce$woocommerce->cart->calculate_totals()代码>仍然是相同的错误。我一直在努力解决这个问题。有没有办法查看wordpress中加载的函数列表?如果您正在跟随@madforstrength注释,但添加了var_dump($woocommerce);var_dump($woocommerce->cart)代码>就在全局$woo…
行之后。您有任何输出吗?@ofirbarch是的,$woocommerce
有输出。。我得到了一个数组,但没有任何var\u dump($woocommerce->cart)的输出代码>返回的值是否为空?