Php 将装运选项移到WooCommerce签出订单审阅之外

Php 将装运选项移到WooCommerce签出订单审阅之外,php,ajax,wordpress,woocommerce,checkout,Php,Ajax,Wordpress,Woocommerce,Checkout,在woocommerce结账时,我想将发货选项移到woocommerce\u order\u review之外,我可以这样做,但我需要在地址更新时进行更新-WC\u AJAX::update\u order\u review() 我可以通过在woocommerce/includes/class-wc-ajax.php中编辑公共静态函数update_order_review()来实现这一点,但我不想编辑核心文件 有没有办法在我的主题函数文件中更改此函数?我只想添加一个新片段 ob_start(

在woocommerce结账时,我想将发货选项移到woocommerce\u order\u review之外,我可以这样做,但我需要在地址更新时进行更新-WC\u AJAX::update\u order\u review()

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

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

  ob_start();
  woocommerce_checkout_shipping_options();
  $woocommerce_checkout_shipping_options = ob_get_clean();

'.woocommerce-checkout-shipping-table' => $woocommerce_checkout_shipping_options,
进入woocommerce\u update\u order\u review\u fragments数组

我的themes 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 );

如果不编辑核心文件,我就看不到编辑更新顺序审查功能的方法。

出于许多原因,请不要编辑WooCommerce核心文件。做事总有办法的

要进行所需的更改比您想象的要简单得多,可以按以下方式进行:

add_filter( 'woocommerce_update_order_review_fragments', 'filter_update_order_review_fragments' );
function filter_update_order_review_fragments( $fradments ){
    ob_start();
    woocommerce_checkout_shipping_options();
    $fradments['.woocommerce-checkout-shipping-table'] = ob_get_clean();

    return $fradments;
}
代码进入活动子主题(或活动主题)的functions.php文件。它应该会起作用