Woocommerce Notification的更改位置正在运作,但在更新了3.3.3版本的woocommerce之后,它无法正常工作。
/includes/wp-notice-functions.php
remove_action( 'woocommerce_shortcode_before_product_cat_loop', 'wc_print_notices', 10 );
remove_action( 'woocommerce_before_shop_loop', 'wc_print_notices', 10 );
remove_action( 'woocommerce_before_single_product', 'wc_print_notices', 10 );
删除了这3个功能。我刚从上面的文件中提到了这3个动作,然后使用我的函数文件
删除了这些动作<div class="center">Your Order</div>
<?php wc_print_notices(); ?>
from-checkout.php标题下的打印通知,但它始终显示在标题上方。
任何人都可以解释我在哪里做错了。
答案 0 :(得分:0)
我想出了一个解决方法。我注意到它实际上是一个调用名为update_order_review
的函数的AJAX请求,该函数通过wc_print_notices
打印通知。您可以使用某些jQuery挂钩到触发器updated_checkout
以进一步向下移动通知。将以下jQuery放入子目录js。
(function($){
'use strict';
$(function(){
var $orderReview = $("#order_review_heading");
$( document.body ).on( 'updated_checkout', function( event, data ) {
console.log( 'checkout was updated' );
console.log(data);
$( '.woocommerce-error, .woocommerce-message' ).remove();
$orderReview.append(data.messages);
$('html, body').animate({
scrollTop: $orderReview.offset().top
}, 500);
});
})
})( jQuery );
使用此代码对脚本进行排队,请注意它依赖于WooCommerce脚本。
function es_checkout_scripts() {
if( is_checkout() )
wp_enqueue_script( 'es-checkout', get_stylesheet_directory_uri() . '/js/es-checkout.js', array('jquery', 'wc-checkout'), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'es_checkout_scripts' );