小编awo*_*zal的帖子

在 Woocommerce 中移动结账运送选项

我正在尝试将 woocommerce 结帐中的运输选项从 review-order.php 移至 form-checkout.php

我已经拿了代码

<?php if ( WC()->cart->needs_shipping() && WC()->cart->show_shipping() ) : ?>
    <?php do_action( 'woocommerce_review_order_before_shipping' ); ?>
    <?php wc_cart_totals_shipping_html(); ?>
    <?php do_action( 'woocommerce_review_order_after_shipping' ); ?>
<?php endif; ?>
Run Code Online (Sandbox Code Playgroud)

并将其移至我的主题 form-checkout.php ,问题是,当我输入或更改地址时,它现在不会更新运费。这已被接受为在线解决方案,但我认为 woocommerce 从那时起已经更新了。

我认为问题在于,当调用 update_checkout Ajax 时,运输选项现在不会更新,但我不确定如何更改它。

谢谢


编辑:我想我知道如何做到这一点。我创建了一个模板 checkout/shipping-options.php

    <?php
defined( 'ABSPATH' ) || exit;
?>
<div class="card card-shipping mb-3 woocommerce-checkout-shipping-table">
                    <div class="card-header">
                        Select Shipping
                    </div>
                    <div class="card-body ">
                        <?php do_action( 'woocommerce_review_order_before_shipping' ); ?>
                        <?php wc_cart_totals_shipping_html(); ?>
                        <?php do_action( 'woocommerce_review_order_after_shipping' ); ?>
                    </div>
</div>  
Run Code Online (Sandbox Code Playgroud)

然后在我的functions.php中我添加了 …

php ajax wordpress woocommerce

3
推荐指数
1
解决办法
3004
查看次数

将送货选项移至 WooCommerce 结帐订单审核之外

在 woocommerce 结账时,我想将送货选项移到 woocommerce_order_review 之外,我可以这样做,但我需要在地址更新时更新它 - WC_AJAX::update_order_review()

我可以通过编辑 woocommerce/includes/class-wc-ajax.php 中的公共静态函数 update_order_review() 来实现此功能,但我不想编辑核心文件。

有没有办法在我的主题函数文件中更改此函数?我想做的就是添加一个新片段

  ob_start();
  woocommerce_checkout_shipping_options();
  $woocommerce_checkout_shipping_options = ob_get_clean();
Run Code Online (Sandbox Code Playgroud)

并添加

'.woocommerce-checkout-shipping-table' => $woocommerce_checkout_shipping_options,
Run Code Online (Sandbox Code Playgroud)

进入 woocommerce_update_order_review_fragments 数组。

我的主题functions.php中已经有了模板函数

function woocommerce_checkout_shipping_options( ) {
        wc_get_template(
            'checkout/shipping-options.php',
            array(
                'checkout' => WC()->checkout(),
            )
        );
    }
add_action( 'woocommerce_checkout_shipping_option', 'woocommerce_checkout_shipping_options', 10 );
Run Code Online (Sandbox Code Playgroud)

我看不到在不编辑核心文件的情况下编辑 update_order_review 函数的方法?

php ajax wordpress checkout woocommerce

1
推荐指数
1
解决办法
1419
查看次数

标签 统计

ajax ×2

php ×2

woocommerce ×2

wordpress ×2

checkout ×1