我有一个Woocommerce One Page Checkout网站,目前有一个产品。到目前为止一切正常,但由于某种原因,我没有看到运费成本显示。
价格计算是正确的,当我进入paymentportal时,运费成本会被添加到总价格中,但不会显示运费。
在搜索解决方案时提供一些见解: 渲染所有数据的行为发生在 /woocommerce/templates/checkout/review-order.php
有人称之为:
<?php wc_cart_totals_shipping_html(); ?>
此功能可在 /woocommcerce/includes/wc-cart-functions.php
中找到正在执行的代码是:
/**
* Get shipping methods
*
* @access public
* @return void
*/
function wc_custom_cart_totals_shipping_html() {
$packages = WC()->shipping->get_packages();
foreach ( $packages as $i => $package ) {
$chosen_method = isset( WC()->session->chosen_shipping_methods[ $i ] ) ? WC()->session->chosen_shipping_methods[ $i ] : '';
wc_get_template( 'cart/cart-shipping.php', array( 'package' => $package, 'available_methods' => $package['rates'], 'show_package_details' => ( sizeof( $packages ) > 1 ), 'index' => $i, 'chosen_method' => $chosen_method ) );
}
}
问题在于$packages = WC()->shipping->get_packages();
返回一个空数组。
/woocommerce/includes/class-wc-shipping.php 中的函数get_packages如下:
/**
* Get packages
* @return array
*/
public function get_packages() {
return $this->packages;
}
因此未设置属性$ this-&gt;包。此属性在函数calculate_shipping中设置在同一文件 /woocommerce/includes/class-wc-shipping.php
我尝试在$packages = WC()->shipping->get_packages();
之前调用该函数,但这不起作用。
有人可以帮助我吗?请注意,我在Wordpress编程方面没有太多经验。
亲切的问候,
皮姆
答案 0 :(得分:6)
如果出现同样的问题,但过了一会儿就设法解决了,你需要打电话
WC()->cart->calculate_totals();
这将填充包,然后您可以使用
wc_cart_totals_shipping_html();
在任何地方显示可用的送货方式列表