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