Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WC()->;cart和functions.php_Php_Wordpress_Woocommerce - Fatal编程技术网

WC()->;cart和functions.php

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

我在将此代码添加到functions.php时遇到此错误

致命错误:对非对象调用成员函数calculate_totals()

这是生成错误的代码

WC()->cart->calculate_totals();
WC()->cart->calculate_shipping();
$packages = WC()->shipping->get_packages();
但是,当我将此代码放入header.php&footer.php中时,没有错误,并且返回了
$packages
数组


如何解决这个问题,我需要functions.php中的代码?

您只需使用
init
hook-in
functions.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)的输出返回的值是否为空?