php Woocommerce一页结帐不显示运费

vq8itlhq  于 2023-01-16  发布在  PHP
关注(0)|答案(1)|浏览(136)

我有一个Woocommerce单页结帐网站,目前有一个产品。到目前为止一切正常,但由于某种原因,我没有看到运费显示。
价格计算是正确的,当我去paymentportal的shippingcosts被添加到总价,但运费没有显示。
为了给我寻找解决方案的过程给予一些见解:所有数据的呈现都发生在**/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-〉packages没有设置。这个属性是在同一个文件**/woocommerce/includes/class-wc-shipping.php**中的函数calculate_shipping中设置的
我尝试在$packages = WC()->shipping->get_packages();之前调用该函数,但没有成功。
有人能帮我吗?请注意,我没有太多的经验在WordPress编程。
此致,
皮姆

zujrkrfu

zujrkrfu1#

有同样的问题,但设法解决了一段时间后,你需要打电话

WC()->cart->calculate_totals();

这将填充包,然后您可以使用

wc_cart_totals_shipping_html();

在您喜欢的任何位置显示可用的配送方式列表

相关问题